Submission #68605496
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for (int i=(a);i<(n);i++)
#define per(i,a,n) for (int i=(n)-1;i>=(a);i--)
#define pb push_back
#define eb emplace_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
#define SZ(x) ((int)(x).size())
typedef vector<int> VI;
typedef basic_string<int> BI;
typedef long long ll;
typedef pair<int,int> PII;
typedef double db;
mt19937 mrand(random_device{}());
const ll mod=1000000007;
int rnd(int x) { return mrand() % x;}
ll powmod(ll a,ll b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;}
// head
const int N=301000;
int n,q,f[N],sz[N],p[N];
int find(int x) {
return f[x]==x?x:f[x]=find(f[x]);
}
int main() {
scanf("%d",&n);
rep(i,1,n+1) f[i]=i;
rep(i,1,n+1) {
scanf("%d",&p[i]);
f[find(i)]=find(p[i]);
}
rep(i,1,n+1) sz[find(i)]+=1;
int m0=0,m1=0,od=0,o1=0;
rep(i,1,n+1) if (find(i)==i) {
int pc=sz[i];
//printf("!! %d\n",pc);
if (pc%2==0) m0+=pc/2,m1+=pc/2;
else {
od+=1;
if (pc==1) o1+=1;
m0+=pc/2; m1+=max(0,pc/2-1);
}
}
scanf("%d",&q);
rep(i,0,q) {
int a0,a1,a2;
scanf("%d%d%d",&a0,&a1,&a2);
if (a0<=m0) {
int ans=2*a0;
int M1=min(m1,a0);
if (a1<=M1) printf("%d\n",ans+2*min(a0,a1));
else printf("%d\n",ans+2*M1+min(a1-M1,a0-M1));
} else {
int ans=2*m0+min(a0-m0,od);
//printf("?? %d\n",ans);
int M1=m1+min(a0-m0,od-o1);
//printf("!! %d\n",M1);
printf("%d\n",ans+2*min(a1,M1));
}
}
}
Submission Info
| Submission Time |
|
| Task |
C - Maximize Sum of Mex |
| User |
apiad |
| Language |
C++ 20 (gcc 12.2) |
| Score |
0 |
| Code Size |
1621 Byte |
| Status |
WA |
| Exec Time |
123 ms |
| Memory |
7476 KiB |
Compile Error
Main.cpp: In function ‘int main()’:
Main.cpp:30:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
30 | scanf("%d",&n);
| ~~~~~^~~~~~~~~
Main.cpp:33:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
33 | scanf("%d",&p[i]);
| ~~~~~^~~~~~~~~~~~
Main.cpp:48:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
48 | scanf("%d",&q);
| ~~~~~^~~~~~~~~
Main.cpp:51:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
51 | scanf("%d%d%d",&a0,&a1,&a2);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
0 / 900 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
01-sample-01.txt, 01-sample-02.txt, 01-sample-03.txt |
| All |
01-sample-01.txt, 01-sample-02.txt, 01-sample-03.txt, 02-small-01.txt, 02-small-02.txt, 02-small-03.txt, 02-small-04.txt, 02-small-05.txt, 02-small-06.txt, 02-small-07.txt, 02-small-08.txt, 02-small-09.txt, 02-small-10.txt, 03-random-01.txt, 03-random-02.txt, 03-random-03.txt, 03-random-04.txt, 03-random-05.txt, 03-random-06.txt, 03-random-07.txt, 03-random-08.txt, 03-random-09.txt, 03-random-10.txt, 04-divide-01.txt, 04-divide-02.txt, 04-divide-03.txt, 04-divide-04.txt, 04-divide-05.txt, 04-divide-06.txt, 04-divide-07.txt, 04-divide-08.txt, 04-divide-09.txt, 04-divide-10.txt, 05-even-divide-01.txt, 05-even-divide-02.txt, 05-even-divide-03.txt, 05-even-divide-04.txt, 05-even-divide-05.txt, 05-even-divide-06.txt, 05-even-divide-07.txt, 05-even-divide-08.txt, 05-even-divide-09.txt, 05-even-divide-10.txt, 06-even-triangular-divide-01.txt, 06-even-triangular-divide-02.txt, 07-large-cycle-01.txt, 07-large-cycle-02.txt, 08-odd-triangular-divide-01.txt, 08-odd-triangular-divide-02.txt, 09-triangular-divide-01.txt, 09-triangular-divide-02.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 01-sample-01.txt |
AC |
1 ms |
3712 KiB |
| 01-sample-02.txt |
AC |
1 ms |
3708 KiB |
| 01-sample-03.txt |
AC |
1 ms |
3784 KiB |
| 02-small-01.txt |
AC |
1 ms |
3844 KiB |
| 02-small-02.txt |
AC |
1 ms |
3608 KiB |
| 02-small-03.txt |
AC |
1 ms |
3936 KiB |
| 02-small-04.txt |
AC |
1 ms |
3968 KiB |
| 02-small-05.txt |
WA |
1 ms |
3880 KiB |
| 02-small-06.txt |
WA |
1 ms |
3896 KiB |
| 02-small-07.txt |
AC |
1 ms |
3928 KiB |
| 02-small-08.txt |
WA |
1 ms |
3848 KiB |
| 02-small-09.txt |
WA |
1 ms |
3844 KiB |
| 02-small-10.txt |
WA |
1 ms |
3856 KiB |
| 03-random-01.txt |
WA |
111 ms |
6016 KiB |
| 03-random-02.txt |
WA |
111 ms |
5992 KiB |
| 03-random-03.txt |
WA |
113 ms |
6332 KiB |
| 03-random-04.txt |
WA |
112 ms |
5952 KiB |
| 03-random-05.txt |
WA |
112 ms |
6172 KiB |
| 03-random-06.txt |
WA |
123 ms |
6060 KiB |
| 03-random-07.txt |
AC |
120 ms |
6068 KiB |
| 03-random-08.txt |
WA |
119 ms |
6024 KiB |
| 03-random-09.txt |
WA |
120 ms |
6052 KiB |
| 03-random-10.txt |
AC |
118 ms |
6116 KiB |
| 04-divide-01.txt |
WA |
114 ms |
7144 KiB |
| 04-divide-02.txt |
WA |
113 ms |
6912 KiB |
| 04-divide-03.txt |
WA |
114 ms |
7184 KiB |
| 04-divide-04.txt |
WA |
113 ms |
7112 KiB |
| 04-divide-05.txt |
WA |
114 ms |
7160 KiB |
| 04-divide-06.txt |
WA |
115 ms |
7152 KiB |
| 04-divide-07.txt |
WA |
113 ms |
7264 KiB |
| 04-divide-08.txt |
WA |
113 ms |
7084 KiB |
| 04-divide-09.txt |
WA |
113 ms |
6912 KiB |
| 04-divide-10.txt |
WA |
114 ms |
7176 KiB |
| 05-even-divide-01.txt |
WA |
111 ms |
7476 KiB |
| 05-even-divide-02.txt |
WA |
112 ms |
7388 KiB |
| 05-even-divide-03.txt |
WA |
113 ms |
7380 KiB |
| 05-even-divide-04.txt |
WA |
114 ms |
7360 KiB |
| 05-even-divide-05.txt |
WA |
111 ms |
7344 KiB |
| 05-even-divide-06.txt |
WA |
111 ms |
7176 KiB |
| 05-even-divide-07.txt |
WA |
112 ms |
7252 KiB |
| 05-even-divide-08.txt |
WA |
113 ms |
7304 KiB |
| 05-even-divide-09.txt |
WA |
113 ms |
7200 KiB |
| 05-even-divide-10.txt |
WA |
113 ms |
7256 KiB |
| 06-even-triangular-divide-01.txt |
WA |
121 ms |
6328 KiB |
| 06-even-triangular-divide-02.txt |
WA |
112 ms |
6052 KiB |
| 07-large-cycle-01.txt |
WA |
113 ms |
6228 KiB |
| 07-large-cycle-02.txt |
WA |
112 ms |
6016 KiB |
| 08-odd-triangular-divide-01.txt |
WA |
117 ms |
6120 KiB |
| 08-odd-triangular-divide-02.txt |
WA |
114 ms |
6144 KiB |
| 09-triangular-divide-01.txt |
WA |
114 ms |
6340 KiB |
| 09-triangular-divide-02.txt |
WA |
112 ms |
6344 KiB |