AtCoder Beginner Contest 009

Submission #1590410

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;}


vector<char> str;
vector<char> diction;
ll N,K;

void outRest(ll index){
  vector<char> a, ans;
  vector<ll> checklist;
  vector<char> check;


  ll   num[26]={0};
  FOR(i,index,N){
    ans.pb(diction[i]);
    a.pb(str[i]);
    num[diction[i]-'a']++;
  }

  rep(i,ans.size()){
    if(num[a[i]-'a']!=0){
      num[a[i]-'a']--;
      ans[i] = a[i];
    }

    else
      checklist.pb(i);
  }

  rep(i,26){
    rep(j,num[i]){
      check.pb('a'+i);
    }
  }
  sort(all(check));

  rep(i,checklist.size()){
    ans[checklist[i]]=check[i];
  }

  rep(i,ans.size()) cout << ans[i];
  cout << endl;
}

ll dif(ll index){
  ll ansa = 0;
  rep(i,index+1)
    if(str[i]!=diction[i]) ansa++;

  ll ansb = 0;
  ll st[26]={0};
  ll di[26]={0};

  FOR(i,index+1,N){
    st[str[i]-'a']++;
    di[diction[i]-'a']++;
  }
  rep(i,26) ansb+=abs(st[i]-di[i]);
    
  return ansa+ansb/2;
}


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


  string S;
  cin >> N >> K >> S;

  rep(i,S.size()){
    str.pb(S[i]);
    diction.pb(S[i]);
  }
  sort(all(diction));


  ll index = N;
  rep(i,N){
    if(dif(i) > K)
      {index = i;break;}
  }

  if(index==N){
    rep(i,index) cout << diction[i] ;
    cout << endl;
    return 0;
  }
  
  rep(i,index) cout << diction[i];
  outRest(index);
  
  
  return 0;
}

Submission

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

Test case

Set

Set name Score得点 / Max score Cases
All 0 / 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 WA
hand_3_4.txt AC 1 ms 256 KB
hand_3_5.txt WA
hand_3_6.txt AC 1 ms 256 KB
hand_4_2.txt AC 1 ms 256 KB
hand_4_3.txt WA
hand_4_4.txt AC 1 ms 256 KB
hand_4_5.txt WA
hand_4_6.txt AC 1 ms 256 KB
random_1.txt WA
random_10.txt AC 1 ms 256 KB
random_11.txt WA
random_12.txt WA
random_13.txt WA
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 WA
random_5.txt AC 1 ms 256 KB
random_6.txt WA
random_7.txt AC 1 ms 256 KB
random_8.txt AC 1 ms 256 KB
random_9.txt WA
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