Submission #1326036

#TimeUsernameProblemLanguageResultExecution timeMemory
1326036vtnooMonochrome Points (JOI20_monochrome)C++20
4 / 100
2094 ms332 KiB
#include <bits/stdc++.h> #define L(i, j, k) for(int i = (j); i <= (k); i++) #define R(i, j, k) for(int i = (j); i >= (k); i--) #define all(x) x.begin(), x.end() #define sz(a) ((int) a.size()) #define pb push_back #define fst first #define snd second using namespace std; typedef long long ll; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int n;cin>>n; string s;cin>>s; int m=n*2; vector<int>w,v; L(i,0,m-1){ if(s[i]=='B')v.pb(i); else w.pb(i); } ll ans=0; do{ bool valid=true; vector<pair<int,int>>p; if(!valid)continue; //~ cout<<"NEW CASE=============="<<endl; L(i,0,n-1){ int a=v[i],b=w[i]; if(a>b)swap(a,b); p.pb({a,b}); } ll cur=0; //~ L(i,0,n-1){ //~ cout<<p[i].fst+1<<" "<<p[i].snd+1<<endl; //~ } L(i,0,n-1){ for(int j=i+1;j<n;j++){ //me fijo si se intersectan int a=p[i].fst,b=p[i].snd; int c=p[j].fst,d=p[j].snd; //~ cout<<"RECTAS:"<<endl; //~ cout<<a+1<<" "<<b+1<<endl; //~ cout<<c+1<<" "<<d+1<<endl; bool caso1=(b>c&&a>c&&d>a&&d<b),caso2=(a<d&&a<c&&b>c&&b<d); if(caso1||caso2){ cur++; } } } ans=max(ans,cur); }while(next_permutation(all(v))); cout<<ans<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...