rendered paste body#include <iostream>#include <string>#include <algorithm>using namespace std;unsigned short t, ti;unsigned long n, i, j, uzyc, test, ind;unsigned long long porownan1 = 0, porownan2 = 0;char tab[10];char * nullptr;struct konto { unsigned long long numer[3]; string napis;};konto *konta[100000];konto *nastepny;string wyjscie;string uz;unsigned long long liczba;bool cmp(konto *a, konto *b) { return a->napis.compare(b->napis) < 0;}inline bool same(konto *a, konto *b) { return a->napis.compare(b->napis) == 0; }inline void wczytaj_konto(konto *wcz) { string temp; char tab[35]; cin.getline(tab, 35); temp = tab; wcz->napis = temp; }int main() { ios_base::sync_with_stdio(0); cin.getline(tab, 1024); t = strtoul(tab, &nullptr, 10); for(ti=0;ti<t;ti++) { cin.getline(tab, 1024); n = strtoul(tab, &nullptr, 10); for(i=0;i<n;i++) { konta[i] = new konto; wczytaj_konto(konta[i]); } sort(konta, konta+n, cmp); uzyc = 1; ind = 0; wyjscie = ""; for(i=0;i<n;i++) { if(i < n-1) { nastepny = konta[i+1]; if(konta[i]->napis.compare(nastepny->napis) == 0) { uzyc++; } else { sprintf(tab, "%d", uzyc); wyjscie += konta[i]->napis; wyjscie += tab; wyjscie += '\n'; //wypisz[ind] = make_pair(konta[i], uzyc); //printf("%s%lu\n", konta[i]->napis.c_str(), uzyc); //cout << konta[i]->napis << uzyc << endl; uzyc = 1; ind++; } } else { if(n>1) { sprintf(tab, "%d", uzyc); uz = tab; if(konta[i]->napis.compare(konta[i-1]->napis) == 0) { wyjscie += konta[i]->napis; wyjscie += uz; wyjscie += '\n'; //wypisz[ind] = make_pair(konta[i], uzyc); //printf("%s%lu\n", konta[i]->napis.c_str(), uzyc); //cout << konta[i]->napis << uzyc << endl; ind++; } else { wyjscie += konta[i]->napis; wyjscie += "1"; wyjscie += '\n'; //wypisz[ind] = make_pair(konta[i], 1); //printf("%s%lu\n", konta[i]->napis.c_str(), 1); //cout << konta[i]->napis << 1 << endl; ind++; } } else { wyjscie += konta[i]->napis; wyjscie += "1"; wyjscie += '\n'; //wypisz[ind] = make_pair(konta[i], 1); ind++; //printf("%s%lu\n", konta[i]->napis.c_str(), 1); //cout << konta[i]->napis << 1 << endl; } } } /* for(i=0;i<ind;i+=5) { printf("%s%lu\n%s%lu\n%s%lu\n%s%lu\n%s%lu\n", wypisz[i].first->napis.c_str(), wypisz[i].second, wypisz[i+1].first->napis.c_str(), wypisz[i+1].second, wypisz[i+2].first->napis.c_str(), wypisz[i+2].second, wypisz[i+3].first->napis.c_str(), wypisz[i+3].second, wypisz[i+4].first->napis.c_str(), wypisz[i+4].second); } */ cout << wyjscie; for(i=0;i<n;i++) { delete konta[i]; } cout << endl; cin.getline(tab, 1024); } return 0;}