Submission #143182

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
1431822019-08-13 09:41:48mariusnicoliKotrljanje (COCI18_kotrljanje)C++14
126 / 140
2037 ms2968 KiB
/**
La aceasta problema observatia cheie este:
pentru ca doua numere sa aiba aceeasi suma a cifrelor in baza b, ele trebuie sadeaacelasi rest la impartirea la b-1.
Asadar vom itera prin valori din b-1 in b-1 calculand brut suma cifrelor si numarand fiecare valoare obtinuta de cate
ori apare, oprindu-ne cand ajungem la m aparitii ale uneia.
Cu cat baza este mai mica cu atat numarul de sume obtinute este mai mic, deci chiar daca din b-1 in b-1 sunt multe valori
beneficiem de faptul ca sunt mai putine sume posibile.
Sa justificam observatia de la care am plecat.
Daca ne gandim la scrierea unui numar n in baza b, la o anume cifra ck, apare in n termenul ck*B^k
Sa prelucram putin:
ck*b^k = ck + ck*(b^k-1) = ck + ck * (b-1) (b^(k-1) + b^(k-2) + ... + b + 1)), deci daca facem modulo (b-1),
din acest termen ramane ck modulo b-1, deci asa la fiecare cifra.
**/
#include <iostream>
#include <vector>
#include <map>
using namespace std;
int mp[30000];
long long c, d, b, m, p, i, n, suma, sol;
int main () {
cin>>c>>d>>b>>m;
long long x = 3;
for (i=1;;i++) {
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...