Submission #32108

#TimeUsernameProblemLanguageResultExecution timeMemory
32108tlwpdusLollipop (POI11_liz)C++11
100 / 100
599 ms21772 KiB
#include <bits/stdc++.h>
 
using namespace std;
 
int n, m, p, fk = -1;
int lol[4000100];
vector<int> loc;
char str[1000100];
 
bool good(int k) {
	if (fk<0) return false;
	if (~lol[fk]&&~lol[fk+k]) {
		printf("%d %d\n",lol[fk]+1,lol[fk+k]);
		return true;
	}
	int idx = upper_bound(loc.begin(),loc.end(),k)-loc.begin();
	if (idx==loc.size()) return false;
	int l = loc[idx];
	if (~lol[l-k]&&lol[l]) {
		printf("%d %d\n",lol[l-k]+1,lol[l]);
		return true;
	}
	return false;
}
 
int main() {
	int i, t = 1;
 
	scanf("%d%d",&n,&m);
	scanf("%s",str);
	memset(lol,-1,sizeof(lol));
	lol[0] = 0;
	for (i=0;i<n;i++) {
		if (str[i]=='T') {p+=2; lol[p] = i+1;}
		else {p++; lol[p] = i+1; loc.push_back(p); if (fk<0) fk = p;}
	}
	for (i=0;i<m;i++) {
		int k;
		scanf("%d",&k);
		if (~lol[k]) {
			printf("%d %d\n",1,lol[k]);
			continue;
		}
		if (!good(k)) { printf("NIE\n"); }
	}
 
    return 0;
}

Compilation message (stderr)

liz.cpp: In function 'bool good(int)':
liz.cpp:17:9: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if (idx==loc.size()) return false;
         ^
liz.cpp: In function 'int main()':
liz.cpp:27:9: warning: unused variable 't' [-Wunused-variable]
  int i, t = 1;
         ^
liz.cpp:29:21: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d",&n,&m);
                     ^
liz.cpp:30:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s",str);
                 ^
liz.cpp:39:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d",&k);
                 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...