Submission #1566145


Source Code Expand

#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())

bool isin(vector<ll> a, ll ai){
  if(a.size()==0) return false;
  rep(i,a.size())
    if(ai==a[i]) return true;
  return false;
}
ll findchar(vector<char> sin,char scp,ll n){
  for(ll i = n;i<sin.size();i++){
    if(sin[i]==scp) return i;
  }
  return -1;
}

int main(){
  cin.tie(0);
  ios::sync_with_stdio(false);
  
  ll N,K;
  string S;
  cin >> N >> K >> S;

  vector<char> sin;//入力したやつ
  vector<char> scp;//コピーしたやつ
  vector<ll> his;
  rep(i,N) {sin.pb(S[i]);scp.pb(S[i]);}
  sort(all(scp));
  rep(i,N){
    if(sin[i]==scp[i]) continue;
    
    ll check = findchar(sin,scp[i],i);
    
    if(check<0 || check>=sin.size()) continue;
    if((!isin(his,check)) && (isin(his,i))){//今やってるのが変更したとこ
      K--;
    }
    else if(isin(his, check) && (!isin(his,i))){//変更先が既に変更した部分
      K--;
    }
    else if((!isin(his,check)) && (!isin(his,i))){//さっき変更してなかった部分
      K-=2;
    }
    
    if(K>=0) {
      his.pb(i);his.pb(check);
      swap(sin[i], sin[check]);
      //cout << "swap: " << sin[i] << " and "<< sin[check] << " " << K << endl;
    }
    else break;
  }

  if(K<0){
    sort(all(his));
    rmsame(his);
    //rep(i,his.size()) cout << his[i] << " ";

    vector<char> cp;
    rep(i,his.size()){
      cp.pb(sin[his[i]]);
    }
    sort(all(cp));

    rep(i,his.size()){
      sin[his[i]]=cp[i];
    }
  }
  
  rep(i,N) cout << sin[i] ;
  cout << endl;;
  
  return 0;
}

Submission Info

Submission Time
Task C - 辞書式順序ふたたび
User ukohank517
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2142 Byte
Status WA
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 31
WA × 27
Set Name Test Cases
All 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
Case Name Status Exec Time Memory
hand_1_0.txt AC 1 ms 256 KB
hand_1_1.txt AC 1 ms 256 KB
hand_1_2.txt WA 1 ms 256 KB
hand_1_3.txt WA 1 ms 256 KB
hand_1_4.txt AC 1 ms 256 KB
hand_1_5.txt WA 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 WA 1 ms 256 KB
hand_2_3.txt WA 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 WA 1 ms 256 KB
hand_2_7.txt WA 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 WA 1 ms 256 KB
hand_3_3.txt WA 1 ms 256 KB
hand_3_4.txt WA 1 ms 256 KB
hand_3_5.txt WA 1 ms 256 KB
hand_3_6.txt WA 1 ms 256 KB
hand_4_2.txt WA 1 ms 256 KB
hand_4_3.txt WA 1 ms 256 KB
hand_4_4.txt WA 1 ms 256 KB
hand_4_5.txt WA 1 ms 256 KB
hand_4_6.txt WA 1 ms 256 KB
random_1.txt WA 1 ms 256 KB
random_10.txt WA 1 ms 256 KB
random_11.txt WA 1 ms 256 KB
random_12.txt WA 1 ms 256 KB
random_13.txt WA 1 ms 256 KB
random_14.txt WA 1 ms 256 KB
random_15.txt WA 1 ms 256 KB
random_2.txt AC 1 ms 256 KB
random_3.txt AC 1 ms 256 KB
random_4.txt WA 1 ms 256 KB
random_5.txt AC 1 ms 256 KB
random_6.txt WA 1 ms 256 KB
random_7.txt AC 1 ms 256 KB
random_8.txt AC 1 ms 256 KB
random_9.txt WA 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