ACM-ICPC 2017 国内予選: A. 太郎君の買物
終了後に解いて書いた。
solution
全部の対を試す。$O(N^2)$。
implementation
#include <cstdio>
#include <vector>
#define repeat(i, n) for (int i = 0; (i) < int(n); ++(i))
using namespace std;
template <class T> inline void setmax(T & a, T const & b) { a = max(a, b); }
int main() {
while (true) {
int n, m; scanf("%d%d", &n, &m);
if (n == 0 and m == 0) break;
vector<int> a(n); repeat (i, n) scanf("%d", &a[i]);
int result = 0;
repeat (j, n) repeat (i, j) {
if (a[i] + a[j] <= m) {
setmax(result, a[i] + a[j]);
}
}
if (result) {
printf("%d\n", result);
} else {
printf("NONE\n");
}
}
return 0;
}