Submission #1734759


Source Code Expand

#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<deque>
#include<string>
#include<string.h>
#include<vector>
#include<set>
#include<map>
#include<stdlib.h>
using namespace std;
const long long mod=1000000007;
const long long inf=mod*mod;
char in[1100000];
int to[1100000][27];
vector<int>g[1100000];
int segtree[1<<22];
int query(int a,int b,int c,int d,int e){
	if(d<a||b<c)return mod;
	if(c<=a&&b<=d)return segtree[e];
	return min(query(a,(a+b)/2,c,d,e*2),query((a+b)/2+1,b,c,d,e*2+1));
}
void update(int a,int b){
	a+=(1<<21);
	while(a){
		segtree[a]=min(segtree[a],b);
		a/=2;
	}
}
int rev[1100000];
int val[1100000];
int eu[2100000];
int fi[1100000];
int num;
int sz;
void dfs(int a){
	val[a]=num;
	rev[num++]=a;
	fi[a]=sz;
	eu[sz++]=val[a];
	for(int i=0;i<g[a].size();i++){
		dfs(g[a][i]);
		eu[sz++]=val[a];
	}
}
int h[1100000];
int main(){
	scanf("%s",in);
	int n=strlen(in);
	int a;scanf("%d",&a);
	for(int i=0;i<27;i++)to[n][i]=-1;
		//printf("%d: %d %d %d\n",n,to[n][24],to[n][25],to[n][26]);
	for(int i=n-1;i>=0;i--){
		for(int j=0;j<27;j++){
			if(in[i]>'a'+j){
				to[i][j]=-1;
				continue;
			}
			if(in[i]=='a'+j){
				to[i][j]=i+1;
			}else{
				if(to[i][j-1]!=-1&&to[to[i][j-1]][j-1]!=-1)to[i][j]=to[to[i][j-1]][j-1];
				//else if(to[i][26]!=-1)to[i][j]=to[to[i][26]][j];
				else to[i][j]=-1;
			}
		}
		for(int j=0;j<26;j++){
			if(to[i][j]==-1&&to[i][26]!=-1)to[i][j]=to[to[i][26]][j];
		}
		//printf("%d: %d %d %d\n",i,to[i][24],to[i][25],to[i][26]);
		if(~to[i][26]){
			h[i]=1;
			g[to[i][26]].push_back(i);
		}
	}
	for(int i=0;i<(1<<22);i++)segtree[i]=mod;
	for(int i=0;i<=n;i++){
		if(h[i]==0)g[n+1].push_back(i);
	}
 
	dfs(n+1);
	for(int i=0;i<sz;i++)update(i,eu[i]);
 
	while(a--){
		int p,q;scanf("%d%d",&p,&q);
		p--;
		int at=rev[query(0,(1<<21)-1,min(fi[p],fi[q]),max(fi[p],fi[q]),1)];
		//printf("%d %d: %d\n",p,q,at);
		if(at==p||at==q){
			printf("Yes\n");
		}else printf("No\n");
	}
}

Submission Info

Submission Time
Task C - Robot and String
User tozangezan
Language C++14 (GCC 5.4.1)
Score 1300
Code Size 2046 Byte
Status AC
Exec Time 224 ms
Memory 146688 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:49:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s",in);
                ^
./Main.cpp:51:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  int a;scanf("%d",&a);
                      ^
./Main.cpp:86:30: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   int p,q;scanf("%d%d",&p,&q);
                              ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1300 / 1300
Status
AC × 3
AC × 67
Set Name Test Cases
Sample 0_00.txt, 0_01.txt, 0_02.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt, 1_32.txt, 1_33.txt, 1_34.txt, 1_35.txt, 1_36.txt, 1_37.txt, 1_38.txt, 1_39.txt, 1_40.txt, 1_41.txt, 1_42.txt, 1_43.txt, 1_44.txt, 1_45.txt, 1_46.txt, 1_47.txt, 1_48.txt, 1_49.txt, 1_50.txt, 1_51.txt, 1_52.txt, 1_53.txt, 1_54.txt, 1_55.txt, 1_56.txt, 1_57.txt, 1_58.txt, 1_59.txt, 1_60.txt, 1_61.txt, 1_62.txt, 1_63.txt
Case Name Status Exec Time Memory
0_00.txt AC 17 ms 53504 KB
0_01.txt AC 17 ms 53504 KB
0_02.txt AC 17 ms 53504 KB
1_00.txt AC 46 ms 53760 KB
1_01.txt AC 46 ms 53760 KB
1_02.txt AC 205 ms 119408 KB
1_03.txt AC 201 ms 119408 KB
1_04.txt AC 212 ms 126840 KB
1_05.txt AC 216 ms 130940 KB
1_06.txt AC 210 ms 140800 KB
1_07.txt AC 205 ms 146688 KB
1_08.txt AC 184 ms 124656 KB
1_09.txt AC 185 ms 124656 KB
1_10.txt AC 184 ms 124660 KB
1_11.txt AC 182 ms 124660 KB
1_12.txt AC 183 ms 124528 KB
1_13.txt AC 187 ms 125044 KB
1_14.txt AC 186 ms 125176 KB
1_15.txt AC 195 ms 125176 KB
1_16.txt AC 193 ms 125432 KB
1_17.txt AC 205 ms 125940 KB
1_18.txt AC 210 ms 126452 KB
1_19.txt AC 212 ms 126708 KB
1_20.txt AC 213 ms 126840 KB
1_21.txt AC 211 ms 127220 KB
1_22.txt AC 217 ms 128248 KB
1_23.txt AC 218 ms 128888 KB
1_24.txt AC 224 ms 130172 KB
1_25.txt AC 224 ms 131456 KB
1_26.txt AC 224 ms 132608 KB
1_27.txt AC 217 ms 133760 KB
1_28.txt AC 214 ms 134784 KB
1_29.txt AC 209 ms 135552 KB
1_30.txt AC 204 ms 136448 KB
1_31.txt AC 206 ms 137856 KB
1_32.txt AC 206 ms 140800 KB
1_33.txt AC 178 ms 120948 KB
1_34.txt AC 180 ms 126068 KB
1_35.txt AC 198 ms 130804 KB
1_36.txt AC 196 ms 130428 KB
1_37.txt AC 213 ms 133888 KB
1_38.txt AC 199 ms 134528 KB
1_39.txt AC 198 ms 134656 KB
1_40.txt AC 199 ms 134656 KB
1_41.txt AC 205 ms 135424 KB
1_42.txt AC 196 ms 134912 KB
1_43.txt AC 201 ms 135936 KB
1_44.txt AC 199 ms 135808 KB
1_45.txt AC 198 ms 135936 KB
1_46.txt AC 199 ms 136704 KB
1_47.txt AC 198 ms 137216 KB
1_48.txt AC 211 ms 139264 KB
1_49.txt AC 200 ms 124148 KB
1_50.txt AC 210 ms 133112 KB
1_51.txt AC 190 ms 121968 KB
1_52.txt AC 201 ms 130168 KB
1_53.txt AC 185 ms 120176 KB
1_54.txt AC 207 ms 136828 KB
1_55.txt AC 200 ms 126448 KB
1_56.txt AC 205 ms 133884 KB
1_57.txt AC 188 ms 123892 KB
1_58.txt AC 195 ms 135664 KB
1_59.txt AC 205 ms 143744 KB
1_60.txt AC 191 ms 133880 KB
1_61.txt AC 193 ms 132724 KB
1_62.txt AC 179 ms 122864 KB
1_63.txt AC 189 ms 130936 KB