Repare que a origem agora não é sempre em (0, 0), então é preciso normalizar as coordenadas que vamos testar. Para isso, basta diminuir as coordenadas com a origem e continuar com o código original (como se agora estivéssemos comparando distâncias relativas).
#include<stdio.h>intmain(){int K, N, M, X, Y;while(scanf("%d",&K)){if(!K) break;scanf("%d%d",&N,&M);for(int i =0; i < K; ++i){scanf("%d%d",&X,&Y); X -= N, Y -= M;if(X >0){if(Y >0) printf("NE\n");elseif(Y <0) printf("SE\n");elseprintf("divisa\n"); }elseif(X <0){if(Y >0) printf("NO\n");elseif(Y <0) printf("SO\n");elseprintf("divisa\n"); }elseprintf("divisa\n"); } }return0;}
#include<iostream>usingnamespace std;intmain(){int K, N, M, X, Y;while(cin >> K){if(!K) break; cin >> N >> M;for(int i =0; i < K; ++i){ cin >> X >> Y; X -= N, Y -= M;if(X >0){if(Y >0) cout <<"NE"<< endl;elseif(Y <0) cout <<"SE"<< endl;else cout <<"divisa"<< endl; }elseif(X <0){if(Y >0) cout <<"NO"<< endl;elseif(Y <0) cout <<"SO"<< endl;else cout <<"divisa"<< endl; }else cout <<"divisa"<< endl; } }return0;}
whileTrue:try: K =int(input())if(K ==0):break N, M = [int(x)for x ininput().strip().split(' ')]for _ inrange(K): X, Y = [int(x)for x ininput().strip().split(' ')] X -= N Y -= Mif(X >0):if(Y >0):print("NE")elif(Y <0):print("SE")else:print("divisa")elif(X <0):if(Y >0):print("NO")elif(Y <0):print("SO")else:print("divisa")else:print("divisa")exceptEOFError:break