#include<bits/stdc++.h> using namespace std; int odp,ile[999],wcz,n,tylm,znak[3001],tylet[3001]; int main() { wcz=getchar(); while(wcz>='a'&&wcz<='z') { znak[n]=wcz; for(int i='a';i<='z';++i) { tylet[ile[i]]=0; ile[i]=0; } tylm=0; for(int i=n;i>=0;--i) { if(ile[znak[i]]!=0) { --tylet[ile[znak[i]]]; if(!tylet[ile[znak[i]]]) --tylm; } ++ile[znak[i]]; ++tylet[ile[znak[i]]]; if(tylet[ile[znak[i]]]==1) ++tylm; if(tylm==1) ++odp; } ++n; wcz=getchar(); } printf("%d",odp); return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #include<bits/stdc++.h> using namespace std; int odp,ile[999],wcz,n,tylm,znak[3001],tylet[3001]; int main() { wcz=getchar(); while(wcz>='a'&&wcz<='z') { znak[n]=wcz; for(int i='a';i<='z';++i) { tylet[ile[i]]=0; ile[i]=0; } tylm=0; for(int i=n;i>=0;--i) { if(ile[znak[i]]!=0) { --tylet[ile[znak[i]]]; if(!tylet[ile[znak[i]]]) --tylm; } ++ile[znak[i]]; ++tylet[ile[znak[i]]]; if(tylet[ile[znak[i]]]==1) ++tylm; if(tylm==1) ++odp; } ++n; wcz=getchar(); } printf("%d",odp); return 0; } |