a53

CntSubsirMax

a53
Nov 24th, 2021 (edited)
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. ifstream fin("window.in");
  4. ofstream fout("window.out");
  5. char s[1000005];
  6. long long n;
  7. long long f[30],r;
  8. const long long mod=1e9+7;
  9. int main(){
  10. ios_base::sync_with_stdio(false);
  11. cin.tie(nullptr);
  12. cin>>(s+1);
  13. n=strlen(s+1);
  14. for(long long i=1;i<=n;i++){
  15. r+=(i*(n-i+1))%mod;
  16. if(r>=mod)r-=mod;
  17. }
  18. for(long long i=n;i>=1;i--){
  19. long long mn(1e9+7);
  20. for(long long j=(long long)s[i]-95;j<=26;j++){
  21. mn=min(mn,((f[j])?f[j]:mod));
  22. }
  23. if(mn<1e9+7){
  24. r-=(i*(n-mn+1))%mod;
  25. r+=mod;
  26. r%=mod;
  27. }
  28. f[(long long)s[i]-96]=i;
  29. }
  30. cout<<r;
  31. return 0;
  32. }
  33.  
Add Comment
Please, Sign In to add comment