#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef __int128 vll;
typedef unsigned __int128 uvll;
ll _i=0;
#define ffn(x) _i=x
#define llll pair<ll , ll>
#define stitr set<ll>::iterator
#define fora(y,x) for(ll y=_i;x>y;y++)
#define pb push_back
#define pf push_front
#define debu cout << "hello\n"
#define fi first
#define sec second
#define all(a) a.begin() , a.end()
const ll limit = 1e13 + 7;
const ll ous=1e5 + 5;
const ll dx[4] = {0 , -1 , 1 , 0} , dy[4] = {1,0,0,-1};
void solve(){
ll n;cin >> n;
ll ar[n];ll ft=0 , st=0 , tc = 1;
fora(i,n){
cin >> ar[i];
if(ar[i] == 1){
ft++;
}
else{
st++;
}
if(ft == st){
tc++;
}
}
vector<ll> tp(n+1 , 0);
cout << ft << " " << st << "\n";
cout << tc << "\n";
ft = st =0;
if(ar[0] == 1){
ft++;
}
else{
st++;
}
ll mx = 0;
for(ll i = 1;n>i;i++){
if(ar[i] == 1){
ft++;
if(ar[i-1] == 1 && tp[i-1] != 0){
tp[i] = tp[i-1]+1;
}
else if(st >= ft){
tp[i] = 1;
}
else{
tp[i]=0;
}
}
else{
st++;
if(ar[i-1] == 2 && tp[i-1] != 0){
tp[i] = tp[i-1]+1;
}
else if(st <= ft){
tp[i] = 1;
}
else{
tp[i]=0;
}
}
mx = max(tp[i] , mx);
}
cout << mx << "\n";
return;/**/
}
signed main(){
ios_base::sync_with_stdio(false);cin.tie(NULL);
ll t=1;
//cin >> t;
while(t--){
solve();
}
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Correct |
0 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
0 ms |
204 KB |
Output is correct |
5 |
Correct |
0 ms |
204 KB |
Output is correct |
6 |
Correct |
0 ms |
204 KB |
Output is correct |
7 |
Partially correct |
0 ms |
204 KB |
Output is partially correct |
8 |
Correct |
0 ms |
204 KB |
Output is correct |
9 |
Partially correct |
0 ms |
204 KB |
Output is partially correct |
10 |
Correct |
0 ms |
204 KB |
Output is correct |