제출 #701567

#제출 시각아이디문제언어결과실행 시간메모리
701567vjudge1JJOOII 2 (JOI20_ho_t2)C++17
100 / 100
17 ms5820 KiB
#include<bits/stdc++.h> #define int long long #define MOD 1000000007 #define all(x) x.begin(),x.end() #define ff first #define ss second #define pb push_back using namespace std; int32_t main(){ int n,k; cin>>n>>k; string s; cin>>s; queue<int>q,q2,q3; vector<pair<int,int>>v,v2,v3; for(int i=0;i<s.size();i++){ if(s[i]=='J'){ q.push(i); if(q.size()==k){ v.pb({q.front(),i}); q.pop(); } } else if(s[i]=='O'){ q2.push(i); if(q2.size()==k){ v2.pb({q2.front(),i}); q2.pop(); } } else{ q3.push(i); if(q3.size()==k){ v3.pb({q3.front(),i}); q3.pop(); } } } int ans=INT_MAX; for(auto i:v){ int l=0,r=v2.size()-1; while(l<=r){ int mid=(l+r)/2; if(v2[mid].ff>i.ss)r=mid-1; else l=mid+1; } int x=l; if(x==v2.size())break; l=0,r=v3.size()-1; while(l<=r){ int mid=(l+r)/2; if(v3[mid].ff>v2[x].ss)r=mid-1; else l=mid+1; } if(l==v3.size())break; ans=min(ans,n-3*k-i.ff-n+v3[l].ss+1); } if(ans==INT_MAX)cout<<"-1"<<endl; else cout<<ans<<endl; }

컴파일 시 표준 에러 (stderr) 메시지

ho_t2.cpp: In function 'int32_t main()':
ho_t2.cpp:18:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |     for(int i=0;i<s.size();i++){
      |                 ~^~~~~~~~~
ho_t2.cpp:21:24: warning: comparison of integer expressions of different signedness: 'std::queue<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   21 |             if(q.size()==k){
      |                ~~~~~~~~^~~
ho_t2.cpp:28:25: warning: comparison of integer expressions of different signedness: 'std::queue<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   28 |             if(q2.size()==k){
      |                ~~~~~~~~~^~~
ho_t2.cpp:35:25: warning: comparison of integer expressions of different signedness: 'std::queue<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   35 |             if(q3.size()==k){
      |                ~~~~~~~~~^~~
ho_t2.cpp:50:13: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |         if(x==v2.size())break;
      |            ~^~~~~~~~~~~
ho_t2.cpp:57:13: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |         if(l==v3.size())break;
      |            ~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...