답안 #830660

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
830660 2023-08-19T08:58:01 Z vjudge1 JJOOII 2 (JOI20_ho_t2) C++17
0 / 100
1 ms 212 KB
#include <bits/stdc++.h>
#define LL long long
using namespace std;
LL suff[200005],suff2[200005],suff3[200005];
int main()
{
	
	LL n,k;
	scanf("%lld %lld",&n,&k);
	vector<LL>j,i;
	string s;
	cin>>s;
	s=" "+s;
	for(LL a=1;a<=n;a++)
	{
		if(s[a]=='J')
		{
		//	printf("MASUK\n");
			suff[a]++;
			j.push_back(a);
		}
		else if(s[a]=='O')suff2[a]++;
		else
		{
			i.push_back(a);
			suff3[a]++;
		 } 
	}
	for(LL a=n-1;a>=1;a--)
	{
		suff[a]+=suff[a+1];
		suff2[a]+=suff2[a+1];
		suff3[a]+=suff3[a+1];
	}
	LL left=-1;
	for(LL a=k-1;a<j.size();a++)
	{
	//	printf("j[%lld]=%lld\n",a,j[a]);
		if(suff2[j[a]]>=k && suff3[j[a]]>=k)left=a;
		else break;
	}
//	printf("left=%lld\n",left);
	if(left==-1){
		printf("-1\n");
		exit(0);
	}
	reverse(i.begin(),i.end());
	LL right=-1;
	for(LL a=k-1;a<i.size();a++)
	{
//		printf("%lld-%lld \n",suff2[j[left]],suff2[i[a]]);
		if(suff2[j[left]]-suff2[i[a]]>=k )right=a;
		else break;
	}
//	printf("right=%lld\n",right);
	if(j[left]>i[right]||right==-1)
	{
		printf("-1\n");
		exit(0);
	}
	LL l=j[left-k+1],r=i[right-k+1];
//	printf("r=%lld l=%lld\n",r,l);
	printf("%lld\n",r-l+1-3*k);
	// ambil 2 j yang paling kanan dan bisa membentuk JJOOII
}

Compilation message

ho_t2.cpp: In function 'int main()':
ho_t2.cpp:36:16: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |  for(LL a=k-1;a<j.size();a++)
      |               ~^~~~~~~~~
ho_t2.cpp:49:16: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |  for(LL a=k-1;a<i.size();a++)
      |               ~^~~~~~~~~
ho_t2.cpp:9:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    9 |  scanf("%lld %lld",&n,&k);
      |  ~~~~~^~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -