結果

問題 No.2142 Segment Zero
ユーザー Varun Teja
提出日時 2022-12-02 23:21:52
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,390 bytes
コンパイル時間 1,711 ms
コンパイル使用メモリ 172,824 KB
実行使用メモリ 105,216 KB
最終ジャッジ日時 2024-10-10 01:52:59
合計ジャッジ時間 35,446 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 19 WA * 16
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include<bits/stdc++.h>
using namespace std;
int main() {
int n, k; cin >> n >> k;
int sm = (n * (n + 1)) / 2; long long diff1 = sm - k, diff2 = sm - k;
int F[n], B[n], i; set<long long> stf, stb;
for(i = 0; i < n; i++) {
F[i] = ((i + 1) * (i + 2)) / 2;
B[n - i - 1] = (n * (n + 1)) / 2 - ((i + 2) * (i + 1)) / 2;
stf.insert(F[i]);
stb.insert(B[n - i - 1]);
}
stf.insert(0); stb.insert(0);
int front = 0, back = 0;
if(k == 0) {
front = 1; back = 1;
}
else {
for(i = 0; i < n; i++) {
if(diff1 >= F[i]) {
diff1 -= F[i];
}
else {
if(diff1 != 0) diff1 -= F[i];
diff1 = abs(diff1);
if(stf.find(diff1) == stf.end()) front = 2;
else front = 1;
break;
}
}
for(i = n - 1; i >= 0; i--) {
if(diff2 >= B[i]) {
diff2 -= B[i];
}
else {
if(diff2 != 0) diff2 -= B[i];
diff2 = abs(diff2);
if(stb.find(diff2) == stb.end()) back = 2;
else back = 1;
break;
}
}
}
if(front == 1 || back == 1) cout << 1 << endl;
else cout << 2 << endl;
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0