1029D - Concatenated Multiples - CodeForces Solution


implementation math *1900

Please click on ads to support us..

C++ Code:

#include<cstdio>
#include<map>
using namespace std;
int N,K;
int A[2<<17],L[2<<17];
main()
{
scanf("%d%d",&N,&K);
for(int i=0;i<N;i++)
{
scanf("%d",&A[i]);
int t=A[i];
while(t)t/=10,L[i]++;
}
long long ans=0;
map<int,int>mp[11];
for(int i=0;i<N;i++)
{
int t=A[i]%K;
for(int j=1;j<=10;j++)
{
t=(long long)t*10%K;
mp[j][t]++;
if(j==L[i])
{
if((t+A[i])%K==0)ans--;
}
}
}
for(int i=0;i<N;i++)
{
int t=(K-A[i]%K)%K;
ans+=mp[L[i]][t];
}
printf("%lld\n",ans);
}


Comments

Submit
0 Comments
More Questions

292B - Network Topology
1339A - Filling Diamonds
910A - The Way to Home
617A - Elephant
48A - Rock-paper-scissors
294A - Shaass and Oskols
1213A - Chips Moving
490A - Team Olympiad
233A - Perfect Permutation
1360A - Minimal Square
467A - George and Accommodation
893C - Rumor
227B - Effective Approach
1534B - Histogram Ugliness
1611B - Team Composition Programmers and Mathematicians
110A - Nearly Lucky Number
1220B - Multiplication Table
1644A - Doors and Keys
1644B - Anti-Fibonacci Permutation
1610A - Anti Light's Cell Guessing
349B - Color the Fence
144A - Arrival of the General
1106A - Lunar New Year and Cross Counting
58A - Chat room
230A - Dragons
200B - Drinks
13A - Numbers
129A - Cookies
1367B - Even Array
136A - Presents