Submission #3155190

Source Code Expand

Copy
#include <bits/stdc++.h>
using namespace std;

#define NDEBUG
#ifdef DEBUG
#include "../cout11.h"
#undef NDEBUG
#endif
#include <cassert>

typedef long long ll;
typedef long double Double;
typedef unsigned long long ull;
typedef pair<int,int> ii;
typedef pair<ll,ll> llll;
typedef pair<double,double> dd;

typedef vector<int> vi;
typedef vector<vector<int>> vvi;
typedef vector<ii> vii;
typedef vector<vector<ii>> vvii;
typedef vector<ll> vll;
typedef vector<string> vs;
typedef vector<double> vd;
typedef vector<long double> vD;

#define sz(a)  int((a).size())
#define pb  push_back
#define FOR(var,from,to) for(int var=(from);var<=(to);++var)
#define rep(var,n)  for(int var=0;var<(n);++var)
#define rep1(var,n)  for(int var=1;var<=(n);++var)
#define repC2(vari,varj,n)  for(int vari=0;vari<(n)-1;++vari)for(int varj=vari+1;varj<(n);++varj)
#define ALL(c)  (c).begin(),(c).end()
#define RALL(c)  (c).rbegin(),(c).rend()
#define tr(i,c)  for(auto i=(c).begin(); i!=(c).end(); ++i)
#define found(s,e)  ((s).find(e)!=(s).end())
#define mset(arr,val)  memset(arr,val,sizeof(arr))
#define mid(x,y) ((x)+((y)-(x))/2)
#define IN(x,a,b) ((a)<=(x)&&(x)<=(b))
#define cons make_pair


ll gcd(ll a, ll b) { while(a) swap(a, b%=a); return b; }


#define INTSPACE 12
char _buf[INTSPACE*1000000 + 3];

int loadint() {
    if (fgets(_buf, INTSPACE+3, stdin)==NULL) return 0;
    return atoi(_buf);
}

int loadvec(vector<int>& v, int N=-1) {
    if (N == -1) {
        N = loadint();
        if (N==0) return 0;
    }
    int bufsize = INTSPACE*N + 3;
    if (fgets(_buf, bufsize, stdin)==NULL) return 0;
    v.resize(N);

    int i=0;
    bool last = false;
    for (char *p=&_buf[0]; ;) {
        char *q = p;
        while (*q > ' ') ++q;
        if (*q == 0x0D || *q == 0x0A) last = true;
        *q = 0;
        v[i++] = atoi(p);
        if (last || i == N) break;
        p = q+1;
    }
    // assert(i <= N);
    return i;
}
void read_cr() {
    fgets(_buf, 256, stdin);
}

ll solve(int N,int X,vi& a) {
    vi d(N);
    rep(i,N) d[i] = abs(a[i] -  X);
    int z = d[N-1];
    rep(i,N-1) z = gcd(z, d[i]);

    return z;
}

int main() {
    int N,X; cin >> N >> X; read_cr();
    vi a(N);
    loadvec(a, N);
    cout << solve(N,X,a) << endl;
    return 0;
}

Submission Info

Submission Time
Task C - Skip
User naoya_t
Language C++14 (GCC 5.4.1)
Score 300
Code Size 2347 Byte
Status
Exec Time 7 ms
Memory 2048 KB

Compile Error

./Main.cpp: In function ‘void read_cr()’:
./Main.cpp:78:28: warning: ignoring return value of ‘char* fgets(char*, int, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
     fgets(_buf, 256, stdin);
                            ^

Test Cases

Set Name Score / Max Score Test Cases
All 300 / 300 hand_1, large_1, large_2, large_3, large_4, large_5, large_6, large_7, large_8, max_1, max_2, max_3, min_1, min_2, sample_01, sample_02, sample_03, small_1, small_2, small_3, small_4, small_5
Sample 0 / 0 sample_01, sample_02, sample_03
Case Name Status Exec Time Memory
hand_1 1 ms 256 KB
large_1 2 ms 512 KB
large_2 2 ms 640 KB
large_3 2 ms 512 KB
large_4 1 ms 256 KB
large_5 1 ms 256 KB
large_6 1 ms 256 KB
large_7 1 ms 256 KB
large_8 1 ms 256 KB
max_1 7 ms 1920 KB
max_2 7 ms 2048 KB
max_3 7 ms 2048 KB
min_1 1 ms 256 KB
min_2 1 ms 256 KB
sample_01 1 ms 256 KB
sample_02 1 ms 256 KB
sample_03 1 ms 256 KB
small_1 1 ms 256 KB
small_2 1 ms 256 KB
small_3 1 ms 256 KB
small_4 1 ms 256 KB
small_5 1 ms 256 KB