110 | 2021. 01. 12 18:09:19 | Tiszay Dávid | DNS | cpp11 | Időlimit túllépés 22/40 | 365ms | 27300 KiB |
#include <bits/stdc++.h>
using namespace std;
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define flog(n) 31-__builtin_clz((n))
#define clog(n) 32-__builtin_clz((n)-1)
#define fori(i,a,b) for(long long int i=(a);i<=(b);i++)
#define forib(i,a,b) for(long long int i=(a);i>=(b);i--)
using ll=long long; using pi=pair<int,int>; using vi=vector<int>; using vl=vector<ll>;
string n;
ll maxi = 0;
void max_length(char t){
map<ll ,ll> m;
map<ll, bool> since;
m[0] = -1;
ll curr = 0;
fori(i, 0, n.length() - 1){
if (n[i] == t){
curr++;
} else {
curr--;
}
if (since[curr] == false){
since[curr] = true;
m[curr] = i;
}
if (curr >= 0){
maxi = max(maxi, i + 1);
} else {
maxi = max(maxi, i - m[curr]);
}
}
}
void solve(){
cin >> n;
max_length('A');
max_length('T');
max_length('G');
max_length('C');
cout << maxi << endl;
}
int main() {
if(true){ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);}
solve();
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 22/40 | ||||||
1 | Elfogadva | 0/0 | 2ms | 1752 KiB | |||
2 | Időlimit túllépés | 0/0 | 365ms | 17556 KiB | |||
3 | Elfogadva | 2/2 | 1ms | 2040 KiB | |||
4 | Elfogadva | 2/2 | 1ms | 2048 KiB | |||
5 | Elfogadva | 2/2 | 1ms | 2052 KiB | |||
6 | Elfogadva | 2/2 | 1ms | 2096 KiB | |||
7 | Elfogadva | 2/2 | 2ms | 2144 KiB | |||
8 | Elfogadva | 4/4 | 101ms | 10288 KiB | |||
9 | Elfogadva | 4/4 | 190ms | 15552 KiB | |||
10 | Elfogadva | 4/4 | 254ms | 17380 KiB | |||
11 | Időlimit túllépés | 0/4 | 354ms | 22788 KiB | |||
12 | Időlimit túllépés | 0/4 | 326ms | 20604 KiB | |||
13 | Időlimit túllépés | 0/5 | 317ms | 24560 KiB | |||
14 | Időlimit túllépés | 0/5 | 317ms | 27300 KiB |