結果
| 問題 |
No.1702 count good string
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-10-08 23:53:19 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 3 ms / 2,000 ms |
| コード長 | 1,320 bytes |
| コンパイル時間 | 1,102 ms |
| コンパイル使用メモリ | 30,696 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-23 08:24:20 |
| 合計ジャッジ時間 | 1,475 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 47 |
コンパイルメッセージ
main.c: In function 'main':
main.c:14:3: warning: implicit declaration of function 'gets'; did you mean 'fgets'? [-Wimplicit-function-declaration]
14 | gets(s,8);
| ^~~~
| fgets
/usr/bin/ld: /tmp/ccnA5fyT.o: in function `main':
main.c:(.text.startup+0x17): 警告: the `gets' function is dangerous and should not be used.
ソースコード
#pragma GCC target("avx")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#include<stdio.h>
#define mod 1000000007
void p(unsigned int* x,const unsigned int y){
*x+=y;
if(*x>=mod)*x-=mod;
}
unsigned int dp[2][10];
char x,s[8];
int main(){
gets(s,8);
dp[0][0]=1;
while(~(x=getchar())){
switch(x){
case '?':
for(unsigned int j=0;j<9;++j)p(&dp[1][j+1],dp[0][j]);
break;
case 'y':
p(&dp[0][1],dp[0][0]);
p(&dp[1][1],dp[1][0]);
break;
case 'u':
p(&dp[0][2],dp[0][1]);
p(&dp[1][2],dp[1][1]);
break;
case 'k':
p(&dp[0][3],dp[0][2]);
p(&dp[1][3],dp[1][2]);
break;
case 'i':
p(&dp[0][4],dp[0][3]);
p(&dp[1][4],dp[1][3]);
break;
case 'c':
p(&dp[0][5],dp[0][4]);
p(&dp[1][5],dp[1][4]);
break;
case 'o':
p(&dp[0][6],dp[0][5]);
p(&dp[1][6],dp[1][5]);
break;
case 'd':
p(&dp[0][7],dp[0][6]);
p(&dp[1][7],dp[1][6]);
break;
case 'e':
p(&dp[0][8],dp[0][7]);
p(&dp[1][8],dp[1][7]);
break;
case 'r':
p(&dp[0][9],dp[0][8]);
p(&dp[1][9],dp[1][8]);
break;
}
}
p(&dp[0][9],dp[1][9]);
printf("%u\n",dp[0][9]);
}