QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#507815#7773. 重排chenxinyang20060 96ms71144kbC++204.2kb2024-08-06 21:08:352024-08-06 21:08:36

Judging History

你现在查看的是最新测评结果

  • [2024-08-06 21:08:36]
  • 评测
  • 测评结果:0
  • 用时:96ms
  • 内存:71144kb
  • [2024-08-06 21:08:35]
  • 提交

answer

#include <bits/stdc++.h>
#define rep(i,j,k) for(int i=(j);i<=(k);i++)
#define per(i,j,k) for(int i=(j);i>=(k);i--)
#define uint unsigned int
#define ll long long
#define ull unsigned long long
#define db double
#define ldb long double
#define pii pair<int,int>
#define pll pair<ll,ll>
#define mkp make_pair
#define eb emplace_back
#define SZ(S) (int)S.size()
#define mod 998244853
#define base 800
//#define mod 1000000007
#define inf 0x3f3f3f3f
#define linf 0x3f3f3f3f3f3f3f3f
using namespace std;

template <class T>
void chkmax(T &x,T y){
    if(x < y) x = y;
}

template <class T>
void chkmin(T &x,T y){
    if(x > y) x = y;
}

inline int popcnt(int x){
    return __builtin_popcount(x);
}

inline int ctz(int x){
    return __builtin_ctz(x);
}

template <int P>
class mod_int
{
    using Z = mod_int;

private:
    static int mo(int x) { return x < 0 ? x + P : x; }

public:
    int x;
    int val() const { return x; }
    mod_int() : x(0) {}
    template <class T>
    mod_int(const T &x_) : x(x_ >= 0 && x_ < P ? static_cast<int>(x_) : mo(static_cast<int>(x_ % P))) {}
    bool operator==(const Z &rhs) const { return x == rhs.x; }
    bool operator!=(const Z &rhs) const { return x != rhs.x; }
    Z operator-() const { return Z(x ? P - x : 0); }
    Z pow(long long k) const
    {
        Z res = 1, t = *this;
        while (k)
        {
            if (k & 1)
                res *= t;
            if (k >>= 1)
                t *= t;
        }
        return res;
    }
    Z &operator++()
    {
        x < P - 1 ? ++x : x = 0;
        return *this;
    }
    Z &operator--()
    {
        x ? --x : x = P - 1;
        return *this;
    }
    Z operator++(int)
    {
        Z ret = x;
        x < P - 1 ? ++x : x = 0;
        return ret;
    }
    Z operator--(int)
    {
        Z ret = x;
        x ? --x : x = P - 1;
        return ret;
    }
    Z inv() const { return pow(P - 2); }
    Z &operator+=(const Z &rhs)
    {
        (x += rhs.x) >= P && (x -= P);
        return *this;
    }
    Z &operator-=(const Z &rhs)
    {
        (x -= rhs.x) < 0 && (x += P);
        return *this;
    }
    Z operator-()
    {
        return -x;
    }
    Z &operator*=(const Z &rhs)
    {
        x = 1ULL * x * rhs.x % P;
        return *this;
    }
    Z &operator/=(const Z &rhs) { return *this *= rhs.inv(); }
#define setO(T, o)                                  \
    friend T operator o(const Z &lhs, const Z &rhs) \
    {                                               \
        Z res = lhs;                                \
        return res o## = rhs;                       \
    }
    setO(Z, +) setO(Z, -) setO(Z, *) setO(Z, /)
#undef setO
    
    friend istream& operator>>(istream& is, mod_int& x)
    {
        long long tmp;
        is >> tmp;
        x = tmp;
        return is;
    }
    friend ostream& operator<<(ostream& os, const mod_int& x)
    {
        os << x.val();
        return os;
    }
};

using Z = mod_int<mod>;
Z power(Z p,ll k){
    Z ans = 1;
    while(k){
        if(k % 2 == 1) ans *= p;
        p *= p;
        k /= 2;
    }
    return ans;
}
int T,n;
int occ[26];
char s[1000005];
Z P[1000005];

struct node{
	list <int> s;
	Z val;
	node(int v):s(1,v),val(v + 1){}
	node(){}
	void operator +=(node &x){
		val += P[SZ(s)] * x.val;
		s.splice(s.end(),x.s);
	}
}a[1000005];

void solve(){
	scanf("%s",s + 1);
    n = strlen(s + 1);
	memset(occ,0,sizeof(occ));
	rep(i,1,n) occ[s[i] - 'a']++;
	P[0] = 1;
	rep(i,1,n) P[i] = P[i - 1] * base;
	n = 0;
    reverse(occ,occ + 26);
	rep(c,0,25) while(occ[c]--) a[++n] = node(c);
/*	rep(i,1,n){
		for(int c:a[i].s) printf("%c",'a' + c);
		printf("\n");
	}*/
	
	int pos = n;
	rep(i,1,n - 1){
		if(pos == n) while(a[pos - 1].val.val() == a[pos].val.val()) pos--;
		a[pos] += a[i];
//		for(int c:a[pos].s) printf("%c",'a' + c);
//		printf(" %d pos=%d\n",a[pos].val.val(),pos);
		pos = min(pos + 1,n);
	}
	for(int v:a[n].s) if(v >= 0) printf("%c",(25 - v) + 'a');
	printf("\n");
}

int main(){	
//	freopen("test.in","r",stdin);
//	scanf("%d",&T);
    T = 1;
	while(T--) solve();
	return 0;
}

详细

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 3ms
memory: 39600kb

input:

mmmmmmmmm

output:

m

result:

wrong answer 1st lines differ - expected: 'mmmmmmmmm', found: 'm'

Subtask #2:

score: 0
Wrong Answer

Test #16:

score: 20
Accepted
time: 4ms
memory: 38928kb

input:

bbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

output:

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbc

result:

ok single line: 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbc'

Test #17:

score: 0
Wrong Answer
time: 4ms
memory: 39772kb

input:

aaaaaaaabcaabacacaaaacaaabaaaabaabaaaaac

output:

aaabaaac

result:

wrong answer 1st lines differ - expected: 'aaabaaacaaabaaacaaabaaacaaabaaacaaabaaac', found: 'aaabaaac'

Subtask #3:

score: 0
Wrong Answer

Test #31:

score: 30
Accepted
time: 4ms
memory: 38976kb

input:

elppjxhjnqephxnnleeepqllpeellqpleexepxlqnpelnlpgplxejlpllppleppnllhjhppgneleghexegqpxpqlqhpnenhlgjjepelllpexplqeppexpqeghpplnpxegeeehqgnhxeqllplphlxpppqnhqephlqnxenlehpeplnqenheejhxqxleeljepehlngepgpxpllppeeheelpplpexpqgheelllplpqnllexlphepghllxnnepqjpqepjeheqqghhejhlnlnlqleeplepxhnlqlnppjpeelqeelxg...

output:

eppppnllllllllllllljjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexe...

result:

ok single line: 'eppppnllllllllllllljjjjjjjjjjj...llllllllllleppppnllllllllllllll'

Test #32:

score: 30
Accepted
time: 0ms
memory: 39440kb

input:

vqfiiyoutipohliojhwhyohiqholfovovhwvuffvifvlffiuwhphmoofjyhhjtfimiisjqwwjtvlotmpivlvyoilvwhhygofhvffoiftmyhpvjqypqfoihfhfjisoiwjujuqvijofilwqjjmqfymtiivfoplifwjplvfvfqvstlihfotqjfylowttwsyvsifvfhptpfovqilvujfyltohvmjtijhpiyffpvyiioyvjqpfjhshowphuttflpfojiovhvtiwfymfvwyooftimyumoomosjlitviowfhtoovlov...

output:

fwvvuuuuuuuttttttttttttttttttttttttttttssssssssssssssssssssqqqqqqqqqqqqqqqqqqqqqqqqqqqppppppppppppppppppppppppppppppppppppppppppppppoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooommmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmllllllllllllllllllll...

result:

ok single line: 'fwvvuuuuuuuttttttttttttttttttt...uuttttttttttttttttttttttttttttt'

Test #33:

score: 30
Accepted
time: 8ms
memory: 38916kb

input:

hdkfjdurfkufuqjhfrhodhrqqsjjaduooafqrkfjhufjqfuqqjhryrahhyggkorjqfjraohrfrqkfjjqarkdfryrooyuoffuqfyyfhdjmhghumjojuafkdrqmohrahhyaaouqfjjojgjrykrhduoshqahquhhoqahokgkfhaojhkjkukafqqrdrsyfqahuqhqduqqufujohjgauoarjagfaaamjuqoqhqkrouuoryhhqyodjfqgjhykhryorguqkoffuyaqgoqodjragfrgkyojmodkuhyjyffuyyjajfhrf...

output:

aurrrqqqqqqqqqqqqoooooooooooooooooooooooooooooooooooooooooooommmmmmmmmmmmmmmmmmkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhggg...

result:

ok single line: 'aurrrqqqqqqqqqqqqooooooooooooo...ooooooooooooooooooooooooooooooo'

Test #34:

score: 30
Accepted
time: 7ms
memory: 39440kb

input:

uksbcbnccbkuqbtebuykgybzbzzbgtznktgzgutckyxbetckqbzzybfybqtykskkccgzskutkqgzyygszkeqgyecbkzbgckktshzgzkbkbztbybgtnntzyezbgtkzgncqkctxegbztzyyggnbyybbuykghsxegkekxhsuynkzyxbzxkcnksezeyejgnytegsyzcgkkyygbxstgytkyeuuzzktknzkeuksnkzgckbzcnegnbkzkzzgzqjzgyshyeeggnceggcyhctqscftbtczcbtyzyskcyyezyyfekyfcgb...

output:

bzyttsssssssssssssssssssssssssssqqqqqqqqqqqqqqqqqqqnnnnnnnnnnnnnnnnnnnnnnkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkjjjhhhhhhhhgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggfffffffffff...

result:

ok single line: 'bzyttsssssssssssssssssssssssss...qqqqqqqqnnnnnnnnnnnnnnnnnnnnnnn'

Test #35:

score: 0
Wrong Answer
time: 5ms
memory: 39192kb

input:

hhhccchhhcchhhcchccchcchccccchcchhchhchcchhhcchcccchhcchchccchhccccccchccccchhchcchcccchchhcchchccccchhhccccchhhchccchhccccchhchhccchccchchccccchhhccccchhcchchhchchchcchcchhhccccccccccchhhhcchchhcchhhhcchchcchcccchcchcccchchcccchcccchhhhccchcccchccccchhhcchcchchhccchchhhchcchcchcccchcchccchhccchhchc...

output:

cchcchchcchchcchchcchchcchchcchchcchcchchcchchcchchcchchcchchcchchcchchcchcchchcchchcchchcchchcchchcchchcchcchchcchchcchchcchchcchchcchchcchchcchcchchcchchcchchcchchcchchcchchcchcchchcchchcchchcchchcchchcchchcchchcchcchchcchchcchchcchchcchchcchchcchcchchcchchcchchcchchcchchcchchcchchcchcchchcchchcch...

result:

wrong answer 1st lines differ - expected: 'cchcchchcchchcchchcchchcchchcc...hcchchcchchcchchcchchcchchcchch', found: 'cchcchchcchchcchchcchchcchchcc...hcchchcchchcchchcchchcchchcchch'

Subtask #4:

score: 0
Wrong Answer

Test #46:

score: 40
Accepted
time: 96ms
memory: 70788kb

input:

ksetiktesataqqwcetteiqcqtwakaiaaaqciceaticteectqqtcaectqtsticctqeqeeiieecaqtctctqqeqitqtttccccctikacktaaqteictwstcitttectaitttiqeqasskkqaateeaatqaetttccesqitiecatgqqaqitwqtaqqcqittittiswcweaiqicqiecwtccakaattgtickccqkqckaaewkekccggtiiqqsttcqactiqeaeqtiigeekettaieekectqqckqqteiceacwecktaiteaceaqkqeic...

output:

atsqqqkiiiiiiiiiggggeeeeeeeeeeeeeecccccccccccccccccccccccccccawawawawawawawawawawawawattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattattat...

result:

ok single line: 'atsqqqkiiiiiiiiiggggeeeeeeeeee...eeecccccccccccccccccccccccccccc'

Test #47:

score: 40
Accepted
time: 90ms
memory: 70296kb

input:

btojojooojottoonoonjjojjwoooonoonjowtjotjotooojjootjjjobjtnoojootojojojbtnojonooojnjtonotootjnotbttojotntoojjqjoojjnooojjjjwojtooojonjotoooojtotjooooooojjoontjnooootjoojjojojtooojoojjojojoooobojjjonjjtoojjjottjojooottootooojoojjotottooooootooobtjoototojjjwnonnjotooojjjotwjoooooootojoootojtotjtjootno...

output:

awwwwwwwwttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq...

result:

ok single line: 'awwwwwwwwttttttttttttttttttttt...nnnnnnnnnnnnnnnnnnnnnnnnnmmmmmm'

Test #48:

score: 40
Accepted
time: 55ms
memory: 65428kb

input:

ezjeqyecllxezecyqciqeydiqwoxwmjzcvfjwmdvyfqdmljjecfdfvdrcjcozcfqmyymljxmcdqyjckmifipcjibyxeoccdodjcjyecijqqvqejjroeflfrwzcvdrijqzwlzjdzwvkyzmqfffdlmmqzljwmvviodzqfkywfwdwlylcowviqfjvyxzwxzxyxxlqjofxcifmrlvdmlefdljfrxcqmjrwlecdzmillwjqcdzcqdlfjkmezjlfmxlyjxwjjvmwmbjqexcxdqfclyzxyjqeqmjzijwcxpizffzxjw...

output:

bzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv...

result:

ok single line: 'bzzzzzzzzzzzzzzyyyyyyyyyyyyyyy...nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn'

Test #49:

score: 40
Accepted
time: 65ms
memory: 69748kb

input:

ledqbfbjoucueufjuolofktuhfbtkndxeuxcobdchcdbokcssokijopbibhnfhbuqhbouhhxcmshpgthootqbgfuoxgoqjudcctnbgcfihbduxlhutckfifhutucccgbsobgmxaghgclqcblbubhialhcqdibfgwusomohwnnujwtkkwdhwbuocguoxwuugfxufbuuuxcocokxdtuguohuudwqghgjluuflomqbbhbbbmduosgsfkhwnulquooxfudhfkxbowcuugxibnuuxfhgqhphbfwutffxwchwoqjhu...

output:

axxxxxxxwwwwwwwuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuutttttttttttttttttttttttttttttttttttttttttttttttttttttttssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq...

result:

ok single line: 'axxxxxxxwwwwwwwuuuuuuuuuuuuuuu...kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk'

Test #50:

score: 40
Accepted
time: 79ms
memory: 71144kb

input:

ggpgpgpgggsgggggygyppgggggggggggppgpgngggggpgsggggpgggsggqppggggggpppggpsgggggsgggpgpgggqgpppppppgggpqsgggggqpgggyggggggggggpgggqgsggggsgggpgggggggpgpgppypggpgggggggqggggggpqpggpgnspgpyppqpqggggpggpggggggsggqgpspgggppgnpgggggggpggqgggpgggggppqgpgpggpspgppsggggggpgggzyggpggnggygsppggggppgggppppbpgggg...

output:

bzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysssssssssssssssssssssssssssssssssssssssssssssssssssssssqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp...

result:

ok single line: 'bzzzzzzyyyyyyyyyyyyyyyyyyyyyyy...lllllllllllllllllllllllllllllli'

Test #51:

score: 0
Wrong Answer
time: 43ms
memory: 70984kb

input:

eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee...

output:

e

result:

wrong answer 1st lines differ - expected: 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeee...eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', found: 'e'