Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33305 | 张赢月 | 【J】T4 | C++ | 通过 | 100 | 47 MS | 5620 KB | 723 | 2024-10-04 21:23:45 |
#include<iostream> using namespace std; string a; int num[30][4]; int len; int ans=0; int thisway; int book[500006]; int check(int pos){ int ret=0; for(int i=num[pos][0]+1;i<=num[pos][1];i++){ book[i]--; if(book[i]<=0){ thisway--; } } for(int i=num[pos][1]+1;i<=num[pos][2];i++){ book[i]++; if(book[i]-1==0){ thisway++; } } return thisway; } int main(){ cin>>a; len=a.size(); for(int i=0;i<len;i++){ int pos=a[i]-'a'+1; // cout<<a[i]<<" "<<pos<<" "<<num[pos][0]<<" "<<num[pos][1]<<" "<<num[pos][2]<<endl; num[pos][0]=num[pos][1]; num[pos][1]=num[pos][2]; num[pos][2]=i+1; ans+=check(pos); // cout<<ans<<endl; } cout<<ans<<endl; return 0; }