Submission #29888994
Source Code Expand
/*
他决定要“格”院子里的竹子。于是他搬了一条凳子坐在院子里,面对着竹子硬想了七天,结果因为头痛而宣告失败。
DONT NEVER AROUND . //
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
char buf[1<<21],*p1=buf,*p2=buf;
#define getchar() (p1==p2 && (p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
int read()
{
int x=0;
char c=getchar();
while(c<'0' || c>'9') c=getchar();
while(c>='0' && c<='9') x=(x<<1)+(x<<3)+(c^'0'),c=getchar();
return x;
}
void write(int x)
{
if(x>9) write(x/10);
putchar(x%10+'0');
}
const int B=2000;
int bel[100005];
struct Query{
int l,r,id;
Query(int L=0,int R=0,int I=0){l=L,r=R,id=I;}
bool operator < (Query ano) const
{
if(bel[l]==bel[ano.l]) return r<ano.r;
return bel[l]<bel[ano.l];
}
}que[1000005];
int n,q,a[100005],gr,ans[1000005],app[100005];
void Add(int x)
{
gr-=app[a[x]]/2;
++app[a[x]];
gr+=app[a[x]]/2;
}
void Sub(int x)
{
gr-=app[a[x]]/2;
--app[a[x]];
gr+=app[a[x]]/2;
}
int main(){
n=read();
for(int i=1;i<=n;++i) a[i]=read();
for(int i=1;i<=n;++i) bel[i]=(i-1)/B+1;
q=read();
for(int i=1;i<=q;++i)
{
int l=read(),r=read();
que[i]=Query(l,r,i);
}
sort(que+1,que+1+q);
for(int i=1,l=1,r=0;i<=q;++i)
{
while(r<que[i].r) Add(++r);
while(r>que[i].r) Sub(r--);
while(l<que[i].l) Sub(l++);
while(l>que[i].l) Add(--l);
ans[que[i].id]=gr;
}
for(int i=1;i<=q;++i) write(ans[i]),puts("");
return 0;
}
Submission Info
| Submission Time |
|
| Task |
G - Range Pairing Query |
| User |
FreshP_0325 |
| Language |
C++ (GCC 9.2.1) |
| Score |
600 |
| Code Size |
1524 Byte |
| Status |
AC |
| Exec Time |
1390 ms |
| Memory |
25544 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
600 / 600 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample_01.txt |
| All |
pair_01.txt, pair_02.txt, pair_03.txt, pair_04.txt, sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt |
| Case Name |
Status |
Exec Time |
Memory |
| pair_01.txt |
AC |
1377 ms |
25544 KiB |
| pair_02.txt |
AC |
1364 ms |
24372 KiB |
| pair_03.txt |
AC |
1358 ms |
24400 KiB |
| pair_04.txt |
AC |
1364 ms |
24368 KiB |
| sample_01.txt |
AC |
13 ms |
15300 KiB |
| test_01.txt |
AC |
13 ms |
15336 KiB |
| test_02.txt |
AC |
695 ms |
19876 KiB |
| test_03.txt |
AC |
942 ms |
21924 KiB |
| test_04.txt |
AC |
160 ms |
18248 KiB |
| test_05.txt |
AC |
780 ms |
20592 KiB |
| test_06.txt |
AC |
252 ms |
18580 KiB |
| test_07.txt |
AC |
60 ms |
16728 KiB |
| test_08.txt |
AC |
119 ms |
18532 KiB |
| test_09.txt |
AC |
58 ms |
16188 KiB |
| test_10.txt |
AC |
1218 ms |
22636 KiB |
| test_11.txt |
AC |
1384 ms |
24580 KiB |
| test_12.txt |
AC |
1270 ms |
24956 KiB |
| test_13.txt |
AC |
1313 ms |
25012 KiB |
| test_14.txt |
AC |
1363 ms |
24756 KiB |
| test_15.txt |
AC |
1368 ms |
24372 KiB |
| test_16.txt |
AC |
1265 ms |
24584 KiB |
| test_17.txt |
AC |
1264 ms |
24884 KiB |
| test_18.txt |
AC |
1329 ms |
24948 KiB |
| test_19.txt |
AC |
1364 ms |
24884 KiB |
| test_20.txt |
AC |
1367 ms |
24356 KiB |
| test_21.txt |
AC |
1390 ms |
24636 KiB |
| test_22.txt |
AC |
1267 ms |
24964 KiB |
| test_23.txt |
AC |
1295 ms |
24976 KiB |
| test_24.txt |
AC |
1262 ms |
24888 KiB |
| test_25.txt |
AC |
1345 ms |
22280 KiB |