이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define boost ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#define fi first
#define se second
#define debug(x) cerr << " - " << #x << ": " << x << endl;
#define debugs(x, y) cerr << " - " << #x << ": " << x << " " << #y << ": " << y << endl;
#define debugii(x) cerr << " - " << #x << ": " << x.fi<<","<<x.se << endl;
#define sep() cerr << "--------------------" << endl;
#define all(x) (x).begin(),(x).end()
#define sz(x) (int)x.size()
#define ll long long
#define ii pair<int,int>
#define v vector<int>
#define vii vector<ii>
#define vv vector<vector<int> >
#define mp make_pair
#define INF 1000000000
#define pb push_back
#define EPS 1e-9
const int MOD = 1000000007; // 998244353
int code(char car){
if(car=='M')return 0;
if(car=='F')return 1;
return 2;
}
int n,last1,last2;
string ph;
map<pair<pair<string,string>,int>,int> dp;
string change(string p){
int idx;
if(sz(p)<2)return p;
return string (1,p[1]);
}
int solve(string mine1,string mine2,int idx){
//debug(mine1);
if(idx==n)return 0;
if(dp.find({{mine1,mine2},idx})!=dp.end())
return dp[{{mine1,mine2},idx}];
set<char> myset;
for (int i = 0; i < sz(mine1); ++i)
myset.insert(mine1[i]);
myset.insert(ph[idx]);
int ans=sz(myset)+solve(change(mine1)+string(1,ph[idx]),mine2,idx+1);
myset.clear();
for (int i = 0; i < sz(mine2); ++i)
myset.insert(mine2[i]);
myset.insert(ph[idx]);
ans=max(ans,sz(myset)+solve(mine1,change(mine2)+string(1,ph[idx]),idx+1));
return dp[{{mine1,mine2},idx}]=ans;
}
int main(){
boost;
char car;
cin>>n>>ph;
cout<<solve("","",0);
return 0;
}
//long long
//array bounds
//special cases
//binary search
컴파일 시 표준 에러 (stderr) 메시지
miners.cpp: In function 'std::__cxx11::string change(std::__cxx11::string)':
miners.cpp:31:6: warning: unused variable 'idx' [-Wunused-variable]
int idx;
^~~
miners.cpp: In function 'int main()':
miners.cpp:54:7: warning: unused variable 'car' [-Wunused-variable]
char car;
^~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |