QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#382064#8515. KMOPkevinshan#WA 64ms101980kbC++171.8kb2024-04-08 01:46:082024-04-08 01:46:09

Judging History

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

  • [2024-04-08 01:46:09]
  • 评测
  • 测评结果:WA
  • 用时:64ms
  • 内存:101980kb
  • [2024-04-08 01:46:08]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define all(x) x.begin(), x.end()
#define pb push_back
#define f first
#define s second

int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0);
    if (fopen("input.in", "r")) {
        freopen("input.in", "r", stdin);
        freopen("output.out", "w", stdout);
    }
    int n; cin>>n;
    vector<string> ar;
    for(int i=0; i<n; i++) {
        string s; cin>>s;
        ar.pb(s);
    }
    int cost[n][3];
    for(int i=0; i<n; i++) cost[i][0] = cost[i][1] = cost[i][2] = 2e8;
    set<char> vowels;
    vowels.insert('A');
    vowels.insert('E');
    vowels.insert('I');
    vowels.insert('O');
    vowels.insert('U');
    vowels.insert('Y');
    for(int i=0; i<n; i++){
        int cur = 0;
        for(int j=0; j<ar[i].size(); j++){
            if(vowels.find(ar[i][j]) != vowels.end()) cur = 0;
            else cur++;
            if(cur == 1) {
                cost[i][1] = min(cost[i][1], j+1);
            }
            else if(cur == 0) {
                cost[i][0] = min(cost[i][0], j+1);
            }
            else if(cur == 2) {
                cost[i][2] = min(cost[i][0], j+1);
            }
            else break;
        }
    }
    vector<vector<int>> dp(n, vector<int>(3,2e8));
    dp[0][0] = cost[0][0];
    dp[0][1] = cost[0][1];
    dp[0][2] = cost[0][2];
    for(int i=1; i<n; i++){
        dp[i][0] = min(dp[i][0], min({dp[i-1][0], dp[i-1][1], dp[i-1][2]}) + cost[i][0]);
        dp[i][1] = min(dp[i][1], dp[i-1][0] + cost[i][1]);
        dp[i][2] = min(dp[i][2], min(dp[i-1][0] + cost[i][2], dp[i-1][1] + cost[i][1]));
    }
    int res = min({dp[n-1][0], dp[n-1][1], dp[n-1][2]});
    if(res >= 2e8) cout<<'*';
    else cout<<res;
}


Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3536kb

input:

3
KNUTH
MORRIS
PRATT

output:

4

result:

ok "4"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3592kb

input:

3
KNUTH
M
PRATT

output:

5

result:

ok "5"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3600kb

input:

3
K
M
P

output:

*

result:

ok "*"

Test #4:

score: 0
Accepted
time: 0ms
memory: 3536kb

input:

2
K
M

output:

2

result:

ok "2"

Test #5:

score: 0
Accepted
time: 0ms
memory: 3532kb

input:

4
YOU
SHOULD
BE
DANCING

output:

5

result:

ok "5"

Test #6:

score: 0
Accepted
time: 64ms
memory: 101980kb

input:

1000000
Y
E
U
O
I
E
I
E
E
Y
I
I
E
Y
E
U
U
O
A
I
U
O
Y
I
Y
Y
U
A
O
E
U
I
A
U
U
I
A
I
U
A
Y
I
E
U
I
O
Y
U
Y
Y
I
E
O
Y
E
A
U
O
O
I
A
E
I
I
Y
U
A
E
Y
Y
A
O
O
Y
A
U
E
A
O
I
O
Y
A
E
I
U
I
E
Y
O
U
O
I
I
Y
E
I
A
Y
U
I
I
Y
E
E
U
O
O
U
A
I
Y
A
I
I
E
O
O
A
A
I
U
I
U
O
E
U
I
E
A
O
E
A
I
O
O
Y
I
U
U
A
I
A
Y
O
A
...

output:

1000000

result:

ok "1000000"

Test #7:

score: 0
Accepted
time: 0ms
memory: 5232kb

input:

1
XAJFUEEIIUOQRUJKBDJUWYSAKPTOCXEUYMYGDOKOAGKXUYPYJYALCCXMPWSAUETUHBAOAIYIGKFLGUJVVNQOANJOYIYTXYNAIKAPEIAHVHQZINSOYPJLEBIJOGNAYWFUEIFDSNLSYEXYYAYZRTEUUEFXBUMOQIYESPKYTACAUXFLYIUYIDOUGOADUHKWOHEIEYUWENJPTOOIXMGAWOYZBMLUAKSIUEUEEECSUAFILCXIOOYIIYNMGYATUAIMZUCHXAKIUVALUMFIEUWUKWFRWALUYIDEQKNAETXEWETEGA...

output:

1

result:

ok "1"

Test #8:

score: -100
Wrong Answer
time: 34ms
memory: 37196kb

input:

333333
SNE
NGO
NJA
JCE
XMU
WBE
ZZO
LTY
RHY
XZU
XZY
HXI
ZPU
FWE
HLA
BFE
NHY
ZPE
WJO
QVU
KGY
DLA
BDI
CSY
WXU
XGU
GQE
CTY
WQU
FHI
KLY
PCI
VDO
BQA
WCU
KQE
FLA
TCI
PHO
GDU
RCO
PKI
HFU
MVA
SRA
KGO
JTI
NNE
RLU
LDU
DGE
QVI
GXE
BHU
CSA
PMY
LTU
HLE
MXY
QFY
STE
WXI
XPA
PKE
DBI
GTY
XVU
MXO
JRA
RNO
FZI
RFI
NGA
Q...

output:

555555

result:

wrong answer 1st words differ - expected: '999995', found: '555555'