Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long lli;
- const int N = 1e5;
- const int PB = 11;
- int powOfPB[3], num[3], one[1331], two[1331], three[1000];
- int main(){
- powOfPB[0] = 1;
- powOfPB[1] = 11;
- powOfPB[2] = 121;
- int nNumber;
- scanf("%d", &nNumber);
- lli cnt = 0;
- for(int i = 1; i <= nNumber; ++i){
- int x;
- scanf("%d", &x);
- num[2] = x / 100 + 1;
- num[1] = x % 100 / 10 + 1;
- num[0] = x % 10 + 1;
- // Add Sum: One Digit
- for(int j = 0; j < 3; ++j){
- cnt += one[powOfPB[j] * num[j]];
- ++one[powOfPB[j] * num[j]];
- }
- // Subtract Sum: Two Digits
- for(int j = 0; j < 2; ++j){
- for(int k = j + 1; k < 3; ++k){
- cnt -= two[powOfPB[j] * num[j] + powOfPB[k] * num[k]];
- ++two[powOfPB[j] * num[j] + powOfPB[k] * num[k]];
- }
- }
- // Add Sum: Three Digits
- cnt += three[x];
- ++three[x];
- }
- cout << cnt;
- return 0;
- }
Add Comment
Please, Sign In to add comment