|
|
вернуться в форумCan they fly to the same airport??? Послано Oscar 14 мар 2003 18:54 What happens if you got an entry like this one: 5 1 1 2 1 3 1 4 1 1 My program would say that it'll win flying to airport number 2 because I think it's kinda obvious that if the airport is exploted then it won't be able to land there... but is that really true? Still getting WA Послано Oscar 14 мар 2003 19:46 I'm still getting WA, can anyone help me? I haven't found a reason for my program not to work, first I thought it was because the entry was making a flight to the same airport, now I fixed that but I still get WA. If anyone's got interesting test cases please post them. Or if you can help me find out the weakness of my code I'll really apreciate it. /*******************************************************/ #include <stdio.h> int a[1000][1000]; int suma[1000]; int n, k, i, j, aux1, aux2, local, min, igual; void main(void) { min=1500; local=0; igual = 0; scanf("%d %d", &n,&k); for (i=0; i<n+1; i++){ for (j=0; j<n+1; j++) a[i][j]=0; suma[i]=0; } for (i=0; i<n-1; i++) { scanf("%d %d", &aux1,&aux2); a[aux1][aux2]=1; a[aux2][aux1]=1; if ((aux1 == aux2) && (aux2 == k)) igual = 1; } for (i=1; i<n+1; i++) { for (j=1; j<n+1; j++) if (a[i][j] == 1) suma[i]++; } for (i=1; i<n+1; i++) { if (a[i][k] == 1) if (suma[i]==1) { local=i; break; } else if (n%2==0) if (suma[i]%2 == 0) if (suma[i]<min) { min = suma[i]; local=i; } else if (suma[i]%2 == 1) if (suma[i]<min) { min = suma[i]; local=i; } } if (igual == 1) local = k; if (local != 0) printf("First player wins flying to airport %d", local); else printf("First player loses"); } my short code has just a DFS... Aidin_n7@hotmail.com |
|
|