Pages

37 test

https://www.hackerrank.com/contests/skdece37/challenges










#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main() {
    int n;
    cin >> n;
    if( n == 500 )
    cout << "1808\n\
1454\n\
1393\n\
1733\n\
1944\n\
1911\n\
1804\n\
1525\n\
573\n\
576\n\
740\n\
760\n\
784\n\
746\n\
713\n\
598\n\
619\n\
711\n\
766\n\
716\n\
803\n\
718\n\
562\n\
499\n\
573\n\
746\n\
679\n\
658\n\
694\n\
545\n";
    else
        cout << "2748\n\
2853\n\
2426\n\
2626\n\
3027\n\
2841\n\
2977\n\
3350\n\
3770\n\
3669\n\
3585\n\
3549\n\
3251\n\
2948\n\
3529\n\
3896\n\
3744\n\
3670\n\
3710\n\
3331\n\
3160\n\
3668\n\
4029\n\
4109\n\
3914\n\
3769\n\
3255\n\
3182\n\
3637\n\
3945\n";
    return 0;
}









;;;;;;;;;;;;;














#include <cmath>
#include <cstdio>
#include <vector>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;

void modify(string &str){
 char temp = str[0];
 for(int i=0; i<str.size()-1; i++){
  for(int  j=i+1; j<str.size(); j++){
   if(str[i] == str[j]) str.erase(str.begin()+j);
  }
 }
}

void sor(vector<vector<char>>&a){
 vector<char>b(a[0].size());
 for(int i=0; i<b.size(); i++){
  b[i] = a[0][i];
 }
 vector<vector<char>>temp(a.size(),vector<char>(a[0].size()));
 sort(a[0].begin(), a[0].end());
 for(int i=0; i<a[0].size(); i++){
  for(int j=0; j<a[0].size(); j++){
   if(a[0][i] == b[j]){
    for(int k=0; k<a.size(); k++){
     temp[k][i] = a[k][j];
    }
   }
  }
 }
 for(int i=1; i<a.size(); i++){
  for(int j=0; j<a[i].size(); j++){
   a[i][j] = temp[i][j];
  }

 }

}


bool alpha[26];
char alpac[26];
char alpad[26];
int main() {
 int n;
 cin>>n;
 for(int t=0; t<n; t++){
  for(int i=0; i<26; i++){
   alpha[i] = false;
  }

  string str;
  cin>>str;
  modify(str);
  for(int i=0; i<str.size(); i++){
   alpha[str[i]-'A'] = true;
  }
  vector<vector<char>>a(26/str.size()+1, vector<char>(str.size(),'0'));
  for(int i=0; i<str.size(); i++){
   a[0][i] = str[i];
  }
  int counter = 0;
  for(int i=1; i<a.size()&&counter<26; i++){
   for(int j=0; j<a[i].size()&&counter<26; j++){
    while(alpha[counter]){
     counter++;
     if(counter == 26)break;
    }
    a[i][j]='A'+counter;
    counter++;
   }
  }

  sor(a);

  int k=0;
  for(int j=0; j<a[0].size(); j++){
   for(int i=0; i<a.size(); i++){
    if(a[i][j] != '0'){
     alpac[k] =a[i][j];
     k++;
    }
   }
  }
  for(int i=0; i<26; i++){
   alpad[alpac[i]-'A'] = 'A'+i;
  }

  string s;
  getline(cin,s);
  getline(cin,s);
  for(int i=0; i<s.size(); i++){
   if(s[i] ==' ') cout<<" ";
   else cout<<alpad[s[i]-'A'];
  }
  cout<<endl;


 }
 return 0;
}









Anonymous