Cod sursa(job #2084316)

Utilizator maria15Maria Dinca maria15 Data 8 decembrie 2017 22:17:41
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
#include <algorithm>

using namespace std;

int k, i, sol[100002], t;
short x, y, ic, jc, n, f[10000][10000];
char ch, nr[100002];
char di[] = {0,  0,  1, 1, 1, -1, -1, -1};
char dj[] = {1, -1, -1, 0, 1, -1,  0, 1};

ifstream fin("spioni.in");
ofstream fout("spioni.out");

int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>x>>y;
        f[x][y] = i;
    }

    fin>>k;
    x = 0;
    y = 0;
    for(i=1;i<=k;i++){
        fin>>ch;
        if(ch == 'N')
            y++;
        if(ch == 'S')
            y--;
        if(ch == 'V')
            x--;
        if(ch == 'E')
            x++;
        for(char d = 0; d<=7;d++){
            ic = x + di[d];
            jc = y + dj[d];
            if(f[ic][jc] != 0 && nr[f[ic][jc]] == 0){
                nr[f[ic][jc]] = 1;
                sol[++t] = f[ic][jc];
            }
        }
    }
    sort(sol+1, sol+t+1);
    for(i=1;i<=t;i++)
        fout<<sol[i]<<endl;
    if(t == 0)
        fout<<"-1";
    return 0;
}