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
AC × 72
AC × 97
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