Submission #1004717
Source Code Expand
#include "bits/stdc++.h"
using namespace std;
#define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i))
#define rer(i,l,u) for(int (i)=(int)(l);(i)<=(int)(u);++(i))
#define reu(i,l,u) for(int (i)=(int)(l);(i)<(int)(u);++(i))
static const int INF = 0x3f3f3f3f; static const long long INFL = 0x3f3f3f3f3f3f3f3fLL;
typedef vector<int> vi; typedef pair<int, int> pii; typedef vector<pair<int, int> > vpii; typedef long long ll;
template<typename T, typename U> static void amin(T &x, U y) { if(y < x) x = y; }
template<typename T, typename U> static void amax(T &x, U y) { if(x < y) x = y; }
int main() {
int N; int Q;
while(~scanf("%d%d", &N, &Q)) {
vector<int> A(Q);
vector<int> B(Q);
for(int i = 0; i < Q; ++ i)
scanf("%d%d", &A[i], &B[i]), -- A[i], -- B[i];
vector<int> iperm(N);
iota(iperm.begin(), iperm.end(), 0);
for(int i = Q - 1; i >= 0; -- i)
swap(iperm[A[i]], iperm[B[i]]);
int pos = 0;
vector<bool> possible(N);
rer(i, 0, Q) {
if(pos > 0)
possible[iperm[pos - 1]] = true;
if(pos < N - 1)
possible[iperm[pos + 1]] = true;
if(i < Q) {
if(pos == A[i]) pos = B[i];
else if(pos == B[i]) pos = A[i];
swap(iperm[A[i]], iperm[B[i]]);
}
}
possible[pos] = true;
int ans = (int)count(possible.begin(), possible.end(), true);
printf("%d\n", ans);
}
return 0;
}
Submission Info
Submission Time |
|
Task |
G - Magician |
User |
anta |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
1360 Byte |
Status |
AC |
Exec Time |
22 ms |
Memory |
1408 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:17:49: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d", &A[i], &B[i]), -- A[i], -- B[i];
^
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
100 / 100 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample_01.txt, sample_02.txt |
All |
sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt |
Case Name |
Status |
Exec Time |
Memory |
sample_01.txt |
AC |
3 ms |
256 KB |
sample_02.txt |
AC |
3 ms |
256 KB |
subtask1_01.txt |
AC |
21 ms |
1408 KB |
subtask1_02.txt |
AC |
21 ms |
1408 KB |
subtask1_03.txt |
AC |
21 ms |
1408 KB |
subtask1_04.txt |
AC |
21 ms |
1408 KB |
subtask1_05.txt |
AC |
21 ms |
1408 KB |
subtask1_06.txt |
AC |
21 ms |
1408 KB |
subtask1_07.txt |
AC |
21 ms |
1408 KB |
subtask1_08.txt |
AC |
21 ms |
1408 KB |
subtask1_09.txt |
AC |
22 ms |
1408 KB |
subtask1_10.txt |
AC |
22 ms |
1408 KB |
subtask1_11.txt |
AC |
21 ms |
1408 KB |
subtask1_12.txt |
AC |
21 ms |
1408 KB |
subtask1_13.txt |
AC |
21 ms |
1408 KB |
subtask1_14.txt |
AC |
21 ms |
1408 KB |
subtask1_15.txt |
AC |
22 ms |
1408 KB |
subtask1_16.txt |
AC |
21 ms |
1408 KB |
subtask1_17.txt |
AC |
22 ms |
1408 KB |
subtask1_18.txt |
AC |
21 ms |
1408 KB |
subtask1_19.txt |
AC |
21 ms |
1408 KB |