Submission #3426048
Source Code Expand
#include "iostream" #include "climits" #include "list" #include "queue" #include "vector" #include "string" #include "map" #include "algorithm" #include "functional" #include "set" #include "numeric" using namespace std; const long long int MOD = 1000000007; long long int N, M, K, H, W, L, R; int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> K; vector<string>ans; for (int loop = 0; loop < K; loop++) { cin >> N >> M >> L >> R; if (N == M || N == M + 1) { string ret; for (long long int i = L; i <= R; i++) { if (i % 2)ret.push_back('A'); else ret.push_back('B'); } ans.push_back(ret); continue; } if (N + 1 == M) { string ret; for (long long int i = L; i <= R; i++) { if (i % 2)ret.push_back('B'); else ret.push_back('A'); } ans.push_back(ret); continue; } long long int k = max(N, M) / (min(N, M) + 1) + !!(max(N, M) % (min(N, M) + 1)); long long int l = max(N, M) / k + !!(max(N, M) % k) - 1; long long int r = min(N, M); cout << k << " " << l << " " << r << endl; if (r > l) { while (r - l > 1) { long long int mid = (l + r + 1) / 2; long long int anum = N - mid; anum /= (k - 1); anum++; long long int bnum = M - mid; bnum /= (k - 1); bnum = mid - bnum + 1; // cout << mid << " " << anum << " " << bnum << endl; if ((bnum + 1 < anum) || (bnum + 1 == anum && (N - mid) % (k - 1)))l = mid; else r = mid; } long long int anum = N - r; anum /= (k - 1); anum++; long long int bnum = M - r; bnum /= (k - 1); if ((M - r) % (k - 1))bnum++; bnum = r - bnum + 1; //cout <<r<<" "<< anum << " " << bnum << endl; if (anum == bnum) { long long int f = (k + 1)*(anum - 1); long long int s = f + 1 + 1 + (N - r) % (k - 1) + (M - r) % (k - 1); if ((M - r) % (k - 1) == 0)s += k - 1; //cout << "hoge " << f << " " << s << endl; string ret; for (int m = L; m <= min(R, f); m++) { if ((f - m) % (k + 1))ret.push_back('A'); else ret.push_back('B'); } for (int m = max(L,f + 1); m <= min(R, s); m++) { if (m - f <= 1 + (N - r) % (k - 1))ret.push_back('A'); else ret.push_back('B'); } for (int m = max(L, s + 1); m <= min(R,N + M); m++) { if ((m - s - 1) % (k + 1))ret.push_back('B'); else ret.push_back('A'); } ans.push_back(ret); } else if (anum == bnum + 1 && (N - r) % (k - 1) == 0) { long long int f = (k + 1)*(anum - 1); long long int s = f + (M - r) % (k - 1); if ((M - r) % (k - 1) == 0)s += k - 1; //cout << "hoge " << f << " " << s << endl; string ret; for (int m = L; m <= min(R, f); m++) { if ((f - m) % (k + 1))ret.push_back('A'); else ret.push_back('B'); } for (int m = max(L, f + 1); m <= min(R, s); m++) { ret.push_back('B'); } for (int m = max(L, s + 1); m <= min(R,N + M); m++) { if ((m - s - 1) % (k + 1))ret.push_back('B'); else ret.push_back('A'); } ans.push_back(ret); } else if(N>M){ cout << "Clash!!\n"; return 0; } continue; } else { cout << "Clash\n"; return 0; } } for (auto i : ans)cout << i << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Min Max Repetition |
User | olphe |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 3296 Byte |
Status | WA |
Exec Time | 4 ms |
Memory | 512 KB |
Judge Result
Set Name | Sample | Partial | All | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 500 | 0 / 600 | ||||||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt |
Partial | sample_01.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt |
All | sample_01.txt, sample_01.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_2_01.txt, subtask_2_02.txt, subtask_2_03.txt, subtask_2_04.txt, subtask_2_05.txt, subtask_2_06.txt, subtask_2_07.txt, subtask_2_08.txt, subtask_2_09.txt, subtask_2_10.txt, subtask_2_11.txt, subtask_2_12.txt, subtask_2_13.txt, subtask_2_14.txt, subtask_2_15.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | WA | 1 ms | 256 KB |
subtask_1_01.txt | WA | 1 ms | 256 KB |
subtask_1_02.txt | WA | 1 ms | 256 KB |
subtask_1_03.txt | AC | 4 ms | 384 KB |
subtask_1_04.txt | AC | 4 ms | 512 KB |
subtask_1_05.txt | AC | 4 ms | 512 KB |
subtask_1_06.txt | WA | 1 ms | 256 KB |
subtask_1_07.txt | WA | 1 ms | 256 KB |
subtask_1_08.txt | WA | 1 ms | 256 KB |
subtask_1_09.txt | WA | 1 ms | 256 KB |
subtask_1_10.txt | WA | 1 ms | 256 KB |
subtask_1_11.txt | WA | 1 ms | 256 KB |
subtask_1_12.txt | WA | 1 ms | 256 KB |
subtask_1_13.txt | WA | 1 ms | 256 KB |
subtask_1_14.txt | WA | 1 ms | 256 KB |
subtask_2_01.txt | AC | 4 ms | 384 KB |
subtask_2_02.txt | AC | 4 ms | 512 KB |
subtask_2_03.txt | WA | 1 ms | 256 KB |
subtask_2_04.txt | WA | 1 ms | 256 KB |
subtask_2_05.txt | WA | 1 ms | 256 KB |
subtask_2_06.txt | WA | 1 ms | 256 KB |
subtask_2_07.txt | WA | 1 ms | 256 KB |
subtask_2_08.txt | WA | 1 ms | 256 KB |
subtask_2_09.txt | WA | 1 ms | 256 KB |
subtask_2_10.txt | WA | 1 ms | 256 KB |
subtask_2_11.txt | WA | 1 ms | 256 KB |
subtask_2_12.txt | WA | 1 ms | 256 KB |
subtask_2_13.txt | WA | 1 ms | 256 KB |
subtask_2_14.txt | WA | 1 ms | 256 KB |
subtask_2_15.txt | WA | 1 ms | 256 KB |