P176PROG - ROUND 6G - Số phần tử khác nhau

Link Sub: https://www.spoj.com/PTIT/problems/P176PROG/
Người Gửi: Dương Lee

  • Problem:

Cho 4 số tự nhiên n, x, y, z (y < z).
Dãy số a được tạo ra như sau:
a[1] = x % z;
for (int i = 2; i <= n; i++)
    a[i] = (a[i – 1] + y) % z;
Hãy đếm số phần tử khác nhau của dãy số a.
Input
gồm 1 dòng chứa 4 số tự nhiên n, x, y, z (1 <= x, y, z <= 109; 1 <= n <= 108).
Output
1 số tự nhiên duy nhất là số phần tử khác nhau của dãy số a
Example:
Input
5 1 3 5
Output:
5

  • Solution:

Hack :v

  • Code:

C++:

https://ideone.com/461bZq
#include <iostream>
using namespace std;
 
int main ()
{
    long long n, x, y, z;
    cin>>n>>x>>y>>z;
    
    long long tg=z;
    while(y!=z)
    {
        if(y>z)
            y=y-z;
        else
            z=z-y;
    }
    
    if (tg/y<n) cout<<(tg/y);
    else cout<<n;
    return 0;
}

JAVA:

...

Python:

...

Share this

Related Posts

Previous
Next Post »