Pagini recente » Cod sursa (job #2873973) | Cod sursa (job #1223881) | Cod sursa (job #382725) | Cod sursa (job #2528136) | Cod sursa (job #1438139)
#include <stdio.h>
#include <algorithm>
using namespace std;
FILE*f=fopen("robot3.in","r"),*g=fopen("robot3.out","w");
int n, m, x, y;
struct pasi
{
int a, b, val, c;
}v[5005];
bool cmp(pasi z, pasi t)
{
if (z.a == t.a)
return z.b < t.b;
else
return z.a < t.a;
}
bool cmp1(pasi z, pasi t)
{
return z.c < t.c;
}
int main()
{
fscanf(f,"%d %d %d %d\n",&n,&m,&x,&y);
v[0].a = x;
v[0].b = y;
char ch;
for(int i = 1; i <= m; i++)
{
fscanf(f,"%c ",&ch);
v[i].c = i;
if(ch == 'N')
{
v[i].a = v[i-1].a - 1;
v[i].b = v[i-1].b ;
}
if(ch == 'S')
{
v[i].a = v[i-1].a + 1;
v[i].b = v[i-1].b;
}
if(ch == 'E')
{
v[i].b = v[i-1].b + 1;
v[i].a = v[i-1].a;
}
if(ch == 'V')
{
v[i].b = v[i-1].b - 1;
v[i].a = v[i-1].a;
}
}
sort(v,v+m+1,cmp);
int nr = 0, k;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
fscanf(f,"%d ",&k);
if(v[nr].a == i && v[nr].b == j)
{
v[nr].val = k;
nr++;
}
if (nr == m) break;
}
if(nr == m) break;
}
long long s = 0;
int ok = 0;
sort(v,v+m+1,cmp1);
s = v[0].val;
for(int i = 1; i <= m; i++)
{
s += v[i].val;
s--;
if(s == 0){ fprintf(g,"%d %d\n",v[i].a,v[i].b); ok = 1; break;}
}
if(ok == 0) fprintf(g,"%d %d\n",v[m].a, v[m].b);
return 0;
}