标签:
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 9983 | Accepted: 2731 |
Description
Input
Output
Sample Input
5 2 3 5 7 12 5 2 16 64 256 1024 0
Sample Output
12 no solution
Source
#include <cstdio> #include <algorithm> #define M 1010 using namespace std; int num[M]; int main() { int n; while(scanf("%d", &n) != EOF &&n!=0) { for(int i=0; i<n; i++) scanf("%d", &num[i]); sort(num, num+n); int re; bool flag=1; for(int i=n-1; i>=0; i--) { for(int j=n-1; j>=0; j--) { if(i==j) continue; int multiply=num[i]-num[j]; int rear=0, top= j-1; //注意 top取值范围 ; while(rear<top) { if(multiply==num[rear]+num[top]) { re=num[i]; flag=0; } if(multiply>num[rear]+num[top]) rear++; if(multiply<num[rear]+num[top]) top--; if(!flag) break; } if(!flag) break; } if(!flag) break; } if(flag) printf("no solution\n"); else printf("%d\n", re); } return 0; }
标签:
原文地址:http://www.cnblogs.com/fengshun/p/5326075.html