結果
| 問題 |
No.171 スワップ文字列(Med)
|
| コンテスト | |
| ユーザー |
wing3196
|
| 提出日時 | 2015-03-23 00:07:39 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 935 bytes |
| コンパイル時間 | 646 ms |
| コンパイル使用メモリ | 80,744 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-29 00:17:33 |
| 合計ジャッジ時間 | 1,271 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 7 WA * 3 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:54:18: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘ll’ {aka ‘long long int’} [-Wformat=]
54 | printf("%d\n",(ans+MOD-1)%MOD);
| ~^
| |
| int
| %lld
ソースコード
#define _USE_MATH_DEFINES
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<climits>
#include<string>
#include<vector>
#include<list>
#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<cstring>
#include<stack>
#include<functional>
using namespace std;
typedef long long ll;
#define MOD 573
int int_pow(int n,int m){
int ans = 1;
while(m--){
ans *= n;
if(ans%MOD!=0) ans %= MOD;
}
return ans;
}
void latte(int A[1001],int n){
for(int i=2;n!=1;i++){
while(n%i==0){
A[i]++;
n /= i;
}
}
}
int main(){
string S;
int cnt[26] = {}, A[1001] = {}, B[1001] = {};
cin>>S;
for(int i=0;i<S.size();i++) cnt[S[i]-'A']++;
for(int i=S.size();i>1;i--) latte(A,i);
for(int i=0;i<26;i++){
for(int j=2;j<=cnt[i];j++){
latte(B,j);
}
}
ll ans = 1;
for(int i=2;i<=S.size();i++){
ans *= int_pow(i,A[i]-B[i]);
if(ans%MOD!=0) ans %= MOD;
}
printf("%d\n",(ans+MOD-1)%MOD);
return 0;
}
wing3196