Submission #58999
Source Code Expand
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<limits.h>
#include<ctype.h>
#include<iostream>
#include<iomanip>
#include<sstream>
#include<algorithm>
#include<functional>
#include<vector>
#include<string>
#include<stack>
#include<queue>
#include<set>
#include<map>
#include<complex>
#define EPS (1e-10)
#define PI (3.141592653589793238)
#define MP make_pair
typedef long long ll;
using namespace std;
int n,Q;
int s[500000];
int t[500000];
pair<int,int> ps[500000];
int next[25][210000];
int ans[500000];
int main(void){
scanf("%d %d",&n,&Q);
for(int i=0;i<n;i++){
scanf("%d %d",&s[i],&t[i]);
}
for(int i=0;i<n;i++){
ps[i]=MP(t[i],i);
ps[n+i]=MP(s[i],n+i);
}
sort(&ps[0],&ps[2*n]);
int last=-1;
for(int i=2*n-1;i>=0;i--){
int id=ps[i].second;
if(id<n){
next[0][id]=last;
}else{
id-=n;
if(last<0 || t[last]>t[id]){
last=id;
}
}
}
for(int k=0;k<20;k++){
for(int i=0;i<n;i++){
if(next[k][i]<0)next[k+1][i]=-1;
else next[k+1][i]=next[k][next[k][i]];
}
}
/*for(int k=0;k<20;k++){
printf("[%d]\n",k);
for(int i=0;i<n;i++){
printf("%2d ",next[k][i]);
}
printf("\n");
}*/
//return 0;
vector<pair<pair<int,int>,int> > qu;
for(int q=0;q<Q;q++){
int qs,qt;
scanf("%d %d",&qs,&qt);
qu.push_back(MP(MP(qs,qt),q));
}
sort(qu.begin(),qu.end());
vector<pair<int,int> > range;
for(int i=0;i<n;i++){
range.push_back(MP(t[i],i));
}
sort(range.begin(),range.end());
int now=0;
for(int q=0;q<Q;q++){
int qs=qu[q].first.first;
int qt=qu[q].first.second;
int qpos=qu[q].second;
while(now<n && s[range[now].second]<qs){
now++;
}
if(now>=n){
ans[qpos]=0;
continue;
}
if(qt<t[range[now].second]){
ans[qpos]=0;
continue;
}
int i=range[now].second;
int tmp=0,j=i;
for(int k=19;k>=0;k--){
int j2=next[k][j];
if(j2>=0 && t[j2]<=qt){
j=j2;
tmp|=(1<<k);
}
}
ans[qpos]=tmp+1;
}
for(int i=0;i<Q;i++){
printf("%d\n",ans[i]);
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | H - 区間スケジューリングクエリ |
| User | jellies |
| Language | C++ (G++ 4.6.4) |
| Score | 200 |
| Code Size | 2133 Byte |
| Status | AC |
| Exec Time | 405 ms |
| Memory | 17632 KiB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:35:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] ./Main.cpp:37:29: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] ./Main.cpp:79:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
Judge Result
| Set Name | Set 01 | Set 02 | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 50 / 50 | 150 / 150 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Set 01 | 00_010_sample1.txt, 00_020_minimal.txt, 01_000_random_N42_Q36.txt, 01_001_random_N99_Q2.txt, 01_002_random_N24_Q53.txt, 01_003_random_N75_Q70.txt, 01_004_random_N81_Q58.txt, 01_005_random_N38_Q48.txt, 01_006_random_N17_Q13.txt, 01_007_random_N12_Q48.txt, 01_008_random_N26_Q76.txt, 01_009_random_N37_Q48.txt, 01_010_random_N4_Q28.txt, 01_011_random_N55_Q46.txt, 01_012_random_N79_Q67.txt, 01_013_random_N34_Q2.txt, 01_014_random_N57_Q39.txt, 01_015_random_N44_Q2.txt, 01_016_random_N71_Q92.txt, 01_017_random_N90_Q38.txt, 01_018_random_N79_Q43.txt, 01_019_random_N96_Q34.txt, 01_020_random_N71_Q49.txt, 01_021_random_N6_Q78.txt, 01_022_random_N46_Q84.txt, 01_023_random_N41_Q15.txt, 01_024_random_N77_Q78.txt, 01_025_random_N44_Q62.txt, 01_026_random_N66_Q4.txt, 01_027_random_N86_Q81.txt, 01_028_random_N3_Q54.txt, 01_029_random_N71_Q85.txt, 01_030_random_N99_Q86.txt, 01_031_random_N54_Q90.txt, 01_032_random_N52_Q61.txt, 01_033_random_N59_Q96.txt, 01_034_random_N27_Q35.txt, 01_035_random_N97_Q70.txt, 01_036_random_N63_Q58.txt, 01_037_random_N29_Q59.txt, 01_038_random_N3_Q29.txt, 01_039_random_N33_Q36.txt, 01_040_random_N59_Q63.txt, 01_041_random_N77_Q17.txt, 01_042_random_N8_Q79.txt, 01_043_random_N81_Q61.txt, 01_044_random_N72_Q94.txt, 01_045_random_N55_Q63.txt, 01_046_random_N16_Q87.txt, 01_047_random_N74_Q48.txt, 01_048_random_N67_Q69.txt, 01_049_random_N94_Q34.txt, 01_050_random_N19_Q8.txt, 01_051_random_N87_Q27.txt, 01_052_random_N100_Q68.txt, 01_053_random_N95_Q19.txt, 01_054_random_N71_Q49.txt, 01_055_random_N15_Q10.txt, 01_056_random_N64_Q27.txt, 01_057_random_N94_Q25.txt, 01_058_random_N10_Q55.txt, 01_059_random_N82_Q57.txt, 02_000_cut_random_N100000_Q100000.txt, 02_001_cut_random_N100000_Q100000.txt, 02_002_cut_random_N100000_Q100000.txt, 02_003_cut_random_N100000_Q100000.txt, 02_004_cut_sliding_N100000_Q100000_S1000_R0.txt, 02_005_cut_sliding_N100000_Q100000_S1000_R10.txt, 02_006_cut_sliding_N100000_Q100000_S10000_R0.txt, 02_007_cut_sliding_N100000_Q100000_S10000_R10.txt, 02_008_cut_sliding_N100000_Q100000_S40000_R0.txt, 02_009_cut_sliding_N100000_Q100000_S40000_R10.txt |
| Set 02 | 00_010_sample1.txt, 00_020_minimal.txt, 01_000_random_N42_Q36.txt, 01_001_random_N99_Q2.txt, 01_002_random_N24_Q53.txt, 01_003_random_N75_Q70.txt, 01_004_random_N81_Q58.txt, 01_005_random_N38_Q48.txt, 01_006_random_N17_Q13.txt, 01_007_random_N12_Q48.txt, 01_008_random_N26_Q76.txt, 01_009_random_N37_Q48.txt, 01_010_random_N4_Q28.txt, 01_011_random_N55_Q46.txt, 01_012_random_N79_Q67.txt, 01_013_random_N34_Q2.txt, 01_014_random_N57_Q39.txt, 01_015_random_N44_Q2.txt, 01_016_random_N71_Q92.txt, 01_017_random_N90_Q38.txt, 01_018_random_N79_Q43.txt, 01_019_random_N96_Q34.txt, 01_020_random_N71_Q49.txt, 01_021_random_N6_Q78.txt, 01_022_random_N46_Q84.txt, 01_023_random_N41_Q15.txt, 01_024_random_N77_Q78.txt, 01_025_random_N44_Q62.txt, 01_026_random_N66_Q4.txt, 01_027_random_N86_Q81.txt, 01_028_random_N3_Q54.txt, 01_029_random_N71_Q85.txt, 01_030_random_N99_Q86.txt, 01_031_random_N54_Q90.txt, 01_032_random_N52_Q61.txt, 01_033_random_N59_Q96.txt, 01_034_random_N27_Q35.txt, 01_035_random_N97_Q70.txt, 01_036_random_N63_Q58.txt, 01_037_random_N29_Q59.txt, 01_038_random_N3_Q29.txt, 01_039_random_N33_Q36.txt, 01_040_random_N59_Q63.txt, 01_041_random_N77_Q17.txt, 01_042_random_N8_Q79.txt, 01_043_random_N81_Q61.txt, 01_044_random_N72_Q94.txt, 01_045_random_N55_Q63.txt, 01_046_random_N16_Q87.txt, 01_047_random_N74_Q48.txt, 01_048_random_N67_Q69.txt, 01_049_random_N94_Q34.txt, 01_050_random_N19_Q8.txt, 01_051_random_N87_Q27.txt, 01_052_random_N100_Q68.txt, 01_053_random_N95_Q19.txt, 01_054_random_N71_Q49.txt, 01_055_random_N15_Q10.txt, 01_056_random_N64_Q27.txt, 01_057_random_N94_Q25.txt, 01_058_random_N10_Q55.txt, 01_059_random_N82_Q57.txt, 02_000_cut_random_N100000_Q100000.txt, 02_001_cut_random_N100000_Q100000.txt, 02_002_cut_random_N100000_Q100000.txt, 02_003_cut_random_N100000_Q100000.txt, 02_004_cut_sliding_N100000_Q100000_S1000_R0.txt, 02_005_cut_sliding_N100000_Q100000_S1000_R10.txt, 02_006_cut_sliding_N100000_Q100000_S10000_R0.txt, 02_007_cut_sliding_N100000_Q100000_S10000_R10.txt, 02_008_cut_sliding_N100000_Q100000_S40000_R0.txt, 02_009_cut_sliding_N100000_Q100000_S40000_R10.txt, 03_000_random_N100000_Q100000.txt, 03_001_random_N100000_Q100000.txt, 03_002_random_N100000_Q100000.txt, 03_003_random_N100000_Q100000.txt, 03_004_sliding_N100000_Q100000_S2_R0.txt, 03_005_sliding_N100000_Q100000_S2_R10.txt, 03_006_sliding_N100000_Q100000_S2_R10000.txt, 03_007_sliding_N100000_Q100000_S3_R0.txt, 03_008_sliding_N100000_Q100000_S3_R10.txt, 03_009_sliding_N100000_Q100000_S3_R10000.txt, 03_010_sliding_N100000_Q100000_S5_R0.txt, 03_011_sliding_N100000_Q100000_S5_R10.txt, 03_012_sliding_N100000_Q100000_S5_R10000.txt, 03_013_sliding_N100000_Q100000_S10_R0.txt, 03_014_sliding_N100000_Q100000_S10_R10.txt, 03_015_sliding_N100000_Q100000_S10_R10000.txt, 03_016_sliding_N100000_Q100000_S100_R0.txt, 03_017_sliding_N100000_Q100000_S100_R10.txt, 03_018_sliding_N100000_Q100000_S100_R10000.txt, 03_019_sliding_N100000_Q100000_S1000_R0.txt, 03_020_sliding_N100000_Q100000_S1000_R10.txt, 03_021_sliding_N100000_Q100000_S1000_R10000.txt, 03_022_sliding_N100000_Q100000_S10000_R0.txt, 03_023_sliding_N100000_Q100000_S10000_R10.txt, 03_024_sliding_N100000_Q100000_S10000_R10000.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_010_sample1.txt | AC | 313 ms | 4836 KiB |
| 00_020_minimal.txt | AC | 201 ms | 4868 KiB |
| 01_000_random_N42_Q36.txt | AC | 157 ms | 4840 KiB |
| 01_001_random_N99_Q2.txt | AC | 37 ms | 4812 KiB |
| 01_002_random_N24_Q53.txt | AC | 33 ms | 4804 KiB |
| 01_003_random_N75_Q70.txt | AC | 30 ms | 4804 KiB |
| 01_004_random_N81_Q58.txt | AC | 56 ms | 4840 KiB |
| 01_005_random_N38_Q48.txt | AC | 45 ms | 4812 KiB |
| 01_006_random_N17_Q13.txt | AC | 39 ms | 4844 KiB |
| 01_007_random_N12_Q48.txt | AC | 55 ms | 4840 KiB |
| 01_008_random_N26_Q76.txt | AC | 47 ms | 4844 KiB |
| 01_009_random_N37_Q48.txt | AC | 30 ms | 4804 KiB |
| 01_010_random_N4_Q28.txt | AC | 32 ms | 4836 KiB |
| 01_011_random_N55_Q46.txt | AC | 32 ms | 4808 KiB |
| 01_012_random_N79_Q67.txt | AC | 38 ms | 4808 KiB |
| 01_013_random_N34_Q2.txt | AC | 50 ms | 4836 KiB |
| 01_014_random_N57_Q39.txt | AC | 47 ms | 4844 KiB |
| 01_015_random_N44_Q2.txt | AC | 31 ms | 4800 KiB |
| 01_016_random_N71_Q92.txt | AC | 31 ms | 4808 KiB |
| 01_017_random_N90_Q38.txt | AC | 112 ms | 4836 KiB |
| 01_018_random_N79_Q43.txt | AC | 66 ms | 4840 KiB |
| 01_019_random_N96_Q34.txt | AC | 219 ms | 4836 KiB |
| 01_020_random_N71_Q49.txt | AC | 57 ms | 4840 KiB |
| 01_021_random_N6_Q78.txt | AC | 91 ms | 4840 KiB |
| 01_022_random_N46_Q84.txt | AC | 30 ms | 4868 KiB |
| 01_023_random_N41_Q15.txt | AC | 72 ms | 4844 KiB |
| 01_024_random_N77_Q78.txt | AC | 30 ms | 4808 KiB |
| 01_025_random_N44_Q62.txt | AC | 32 ms | 4844 KiB |
| 01_026_random_N66_Q4.txt | AC | 31 ms | 4804 KiB |
| 01_027_random_N86_Q81.txt | AC | 31 ms | 4864 KiB |
| 01_028_random_N3_Q54.txt | AC | 30 ms | 4800 KiB |
| 01_029_random_N71_Q85.txt | AC | 60 ms | 4800 KiB |
| 01_030_random_N99_Q86.txt | AC | 33 ms | 4840 KiB |
| 01_031_random_N54_Q90.txt | AC | 38 ms | 4800 KiB |
| 01_032_random_N52_Q61.txt | AC | 31 ms | 4876 KiB |
| 01_033_random_N59_Q96.txt | AC | 43 ms | 4808 KiB |
| 01_034_random_N27_Q35.txt | AC | 34 ms | 4808 KiB |
| 01_035_random_N97_Q70.txt | AC | 30 ms | 4808 KiB |
| 01_036_random_N63_Q58.txt | AC | 32 ms | 4844 KiB |
| 01_037_random_N29_Q59.txt | AC | 30 ms | 4804 KiB |
| 01_038_random_N3_Q29.txt | AC | 66 ms | 4808 KiB |
| 01_039_random_N33_Q36.txt | AC | 31 ms | 4836 KiB |
| 01_040_random_N59_Q63.txt | AC | 33 ms | 4872 KiB |
| 01_041_random_N77_Q17.txt | AC | 240 ms | 4844 KiB |
| 01_042_random_N8_Q79.txt | AC | 65 ms | 4924 KiB |
| 01_043_random_N81_Q61.txt | AC | 34 ms | 4804 KiB |
| 01_044_random_N72_Q94.txt | AC | 33 ms | 4852 KiB |
| 01_045_random_N55_Q63.txt | AC | 36 ms | 4844 KiB |
| 01_046_random_N16_Q87.txt | AC | 32 ms | 4804 KiB |
| 01_047_random_N74_Q48.txt | AC | 32 ms | 4808 KiB |
| 01_048_random_N67_Q69.txt | AC | 65 ms | 4844 KiB |
| 01_049_random_N94_Q34.txt | AC | 32 ms | 4836 KiB |
| 01_050_random_N19_Q8.txt | AC | 31 ms | 4840 KiB |
| 01_051_random_N87_Q27.txt | AC | 31 ms | 4840 KiB |
| 01_052_random_N100_Q68.txt | AC | 31 ms | 4800 KiB |
| 01_053_random_N95_Q19.txt | AC | 30 ms | 4800 KiB |
| 01_054_random_N71_Q49.txt | AC | 35 ms | 4804 KiB |
| 01_055_random_N15_Q10.txt | AC | 30 ms | 4800 KiB |
| 01_056_random_N64_Q27.txt | AC | 47 ms | 4808 KiB |
| 01_057_random_N94_Q25.txt | AC | 38 ms | 4868 KiB |
| 01_058_random_N10_Q55.txt | AC | 31 ms | 4868 KiB |
| 01_059_random_N82_Q57.txt | AC | 48 ms | 4844 KiB |
| 02_000_cut_random_N100000_Q100000.txt | AC | 162 ms | 15084 KiB |
| 02_001_cut_random_N100000_Q100000.txt | AC | 165 ms | 15088 KiB |
| 02_002_cut_random_N100000_Q100000.txt | AC | 174 ms | 15084 KiB |
| 02_003_cut_random_N100000_Q100000.txt | AC | 161 ms | 15080 KiB |
| 02_004_cut_sliding_N100000_Q100000_S1000_R0.txt | AC | 129 ms | 15056 KiB |
| 02_005_cut_sliding_N100000_Q100000_S1000_R10.txt | AC | 137 ms | 15060 KiB |
| 02_006_cut_sliding_N100000_Q100000_S10000_R0.txt | AC | 164 ms | 15328 KiB |
| 02_007_cut_sliding_N100000_Q100000_S10000_R10.txt | AC | 147 ms | 15356 KiB |
| 02_008_cut_sliding_N100000_Q100000_S40000_R0.txt | AC | 246 ms | 16856 KiB |
| 02_009_cut_sliding_N100000_Q100000_S40000_R10.txt | AC | 173 ms | 15808 KiB |
| 03_000_random_N100000_Q100000.txt | AC | 290 ms | 17624 KiB |
| 03_001_random_N100000_Q100000.txt | AC | 360 ms | 17624 KiB |
| 03_002_random_N100000_Q100000.txt | AC | 325 ms | 17504 KiB |
| 03_003_random_N100000_Q100000.txt | AC | 405 ms | 17624 KiB |
| 03_004_sliding_N100000_Q100000_S2_R0.txt | AC | 255 ms | 17628 KiB |
| 03_005_sliding_N100000_Q100000_S2_R10.txt | AC | 243 ms | 17632 KiB |
| 03_006_sliding_N100000_Q100000_S2_R10000.txt | AC | 264 ms | 17624 KiB |
| 03_007_sliding_N100000_Q100000_S3_R0.txt | AC | 315 ms | 17620 KiB |
| 03_008_sliding_N100000_Q100000_S3_R10.txt | AC | 259 ms | 17628 KiB |
| 03_009_sliding_N100000_Q100000_S3_R10000.txt | AC | 276 ms | 17604 KiB |
| 03_010_sliding_N100000_Q100000_S5_R0.txt | AC | 300 ms | 17620 KiB |
| 03_011_sliding_N100000_Q100000_S5_R10.txt | AC | 262 ms | 17628 KiB |
| 03_012_sliding_N100000_Q100000_S5_R10000.txt | AC | 289 ms | 17620 KiB |
| 03_013_sliding_N100000_Q100000_S10_R0.txt | AC | 277 ms | 17624 KiB |
| 03_014_sliding_N100000_Q100000_S10_R10.txt | AC | 290 ms | 17624 KiB |
| 03_015_sliding_N100000_Q100000_S10_R10000.txt | AC | 325 ms | 17624 KiB |
| 03_016_sliding_N100000_Q100000_S100_R0.txt | AC | 259 ms | 17624 KiB |
| 03_017_sliding_N100000_Q100000_S100_R10.txt | AC | 250 ms | 17628 KiB |
| 03_018_sliding_N100000_Q100000_S100_R10000.txt | AC | 371 ms | 17496 KiB |
| 03_019_sliding_N100000_Q100000_S1000_R0.txt | AC | 283 ms | 17500 KiB |
| 03_020_sliding_N100000_Q100000_S1000_R10.txt | AC | 266 ms | 17496 KiB |
| 03_021_sliding_N100000_Q100000_S1000_R10000.txt | AC | 279 ms | 17500 KiB |
| 03_022_sliding_N100000_Q100000_S10000_R0.txt | AC | 239 ms | 17496 KiB |
| 03_023_sliding_N100000_Q100000_S10000_R10.txt | AC | 255 ms | 17500 KiB |
| 03_024_sliding_N100000_Q100000_S10000_R10000.txt | AC | 287 ms | 17492 KiB |