AtCoder Beginner Contest 009

Submission #1590443

Source codeソースコード

#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <cstring>
#include <map>
#include <queue>
#include <cmath>
#include <complex> // complex<double> a(1.2 , 2.3);// real(): 1.2, imag()2.3
using namespace std;

#define MOD 1000000007
#define ll long long
#define ld long double
#define FOR(i,a,b) for(ll i=(ll)a;i<(ll)b;i++)
#define rep(i,n) FOR(i,0,n)
#define pb push_back
#define mp make_pair
#define all(a) a.begin(),a.end()
#define rall(a) a.rbegin(),a.rend()
#define rmsame(a) sort(all(a)),a.erase(unique(all(a)), a.end())
#define rmvector(a,b) rep(i,a.size())rep(j,b.size())if(a[i]==b[j]){a.erase(a.begin()+i);i--;break;}


char S[101],T[101];

int main(){
  cin.tie(0);
  ios::sync_with_stdio(false);


  ll N , K;cin >> N >> K;
  string str ; cin >> str;rep(i,N) S[i]=str[i];

  vector<ll>Tcnt(26);
  rep(i,N) Tcnt[S[i]-'a']++;
  rep(i,N){
    FOR(a,'a','z'+1) if(Tcnt[a-'a']>0){
      T[i]=a;
      Tcnt[a-'a']--;
      ll x = 0;
      rep(j,i+1) x += S[j] != T[j];
      vector<ll> Scnt(26);
      FOR(j,i+1,N)
	Scnt[S[j]-'a']++;
      ll y = 0;
      rep(j,26) y+= max(Scnt[j], Tcnt[j])-min(Scnt[j],Tcnt[j]);
      x+=y/2;
      if(x<=K) break;
      Tcnt[a-'a']++;
      T[i]='?';
    }

  }
  rep(i,N) cout << T[i]; cout << endl;
  return 0;

}

Submission

Task問題 C - 辞書式順序ふたたび
User nameユーザ名 ukohank517
Created time投稿日時
Language言語 C++14 (GCC 5.4.1)
Status状態 AC
Score得点 100
Source lengthソースコード長 1350 Byte
File nameファイル名
Exec time実行時間 1 ms
Memory usageメモリ使用量 256 KB

Test case

Set

Set name Score得点 / Max score Cases
All 100 / 100 hand_1_0.txt,hand_1_1.txt,hand_1_2.txt,hand_1_3.txt,hand_1_4.txt,hand_1_5.txt,hand_1_6.txt,hand_1_7.txt,hand_1_8.txt,hand_2_0.txt,hand_2_1.txt,hand_2_10.txt,hand_2_2.txt,hand_2_3.txt,hand_2_4.txt,hand_2_5.txt,hand_2_6.txt,hand_2_7.txt,hand_2_8.txt,hand_2_9.txt,hand_3_2.txt,hand_3_3.txt,hand_3_4.txt,hand_3_5.txt,hand_3_6.txt,hand_4_2.txt,hand_4_3.txt,hand_4_4.txt,hand_4_5.txt,hand_4_6.txt,random_1.txt,random_10.txt,random_11.txt,random_12.txt,random_13.txt,random_14.txt,random_15.txt,random_2.txt,random_3.txt,random_4.txt,random_5.txt,random_6.txt,random_7.txt,random_8.txt,random_9.txt,sample_1.txt,sample_2.txt,sample_3.txt,sample_4.txt,small_1.txt,small_2.txt,small_3.txt,small_4.txt,small_5.txt,small_6.txt,small_7.txt,small_8.txt,small_9.txt

Test case

Case name Status状態 Exec time実行時間 Memory usageメモリ使用量
hand_1_0.txt AC 1 ms 256 KB
hand_1_1.txt AC 1 ms 256 KB
hand_1_2.txt AC 1 ms 256 KB
hand_1_3.txt AC 1 ms 256 KB
hand_1_4.txt AC 1 ms 256 KB
hand_1_5.txt AC 1 ms 256 KB
hand_1_6.txt AC 1 ms 256 KB
hand_1_7.txt AC 1 ms 256 KB
hand_1_8.txt AC 1 ms 256 KB
hand_2_0.txt AC 1 ms 256 KB
hand_2_1.txt AC 1 ms 256 KB
hand_2_10.txt AC 1 ms 256 KB
hand_2_2.txt AC 1 ms 256 KB
hand_2_3.txt AC 1 ms 256 KB
hand_2_4.txt AC 1 ms 256 KB
hand_2_5.txt AC 1 ms 256 KB
hand_2_6.txt AC 1 ms 256 KB
hand_2_7.txt AC 1 ms 256 KB
hand_2_8.txt AC 1 ms 256 KB
hand_2_9.txt AC 1 ms 256 KB
hand_3_2.txt AC 1 ms 256 KB
hand_3_3.txt AC 1 ms 256 KB
hand_3_4.txt AC 1 ms 256 KB
hand_3_5.txt AC 1 ms 256 KB
hand_3_6.txt AC 1 ms 256 KB
hand_4_2.txt AC 1 ms 256 KB
hand_4_3.txt AC 1 ms 256 KB
hand_4_4.txt AC 1 ms 256 KB
hand_4_5.txt AC 1 ms 256 KB
hand_4_6.txt AC 1 ms 256 KB
random_1.txt AC 1 ms 256 KB
random_10.txt AC 1 ms 256 KB
random_11.txt AC 1 ms 256 KB
random_12.txt AC 1 ms 256 KB
random_13.txt AC 1 ms 256 KB
random_14.txt AC 1 ms 256 KB
random_15.txt AC 1 ms 256 KB
random_2.txt AC 1 ms 256 KB
random_3.txt AC 1 ms 256 KB
random_4.txt AC 1 ms 256 KB
random_5.txt AC 1 ms 256 KB
random_6.txt AC 1 ms 256 KB
random_7.txt AC 1 ms 256 KB
random_8.txt AC 1 ms 256 KB
random_9.txt AC 1 ms 256 KB
sample_1.txt AC 1 ms 256 KB
sample_2.txt AC 1 ms 256 KB
sample_3.txt AC 1 ms 256 KB
sample_4.txt AC 1 ms 256 KB
small_1.txt AC 1 ms 256 KB
small_2.txt AC 1 ms 256 KB
small_3.txt AC 1 ms 256 KB
small_4.txt AC 1 ms 256 KB
small_5.txt AC 1 ms 256 KB
small_6.txt AC 1 ms 256 KB
small_7.txt AC 1 ms 256 KB
small_8.txt AC 1 ms 256 KB
small_9.txt AC 1 ms 256 KB