結果
問題 | No.21 平均の差 |
ユーザー | kokoa1046 |
提出日時 | 2018-03-11 07:45:21 |
言語 | C++14 (gcc 12.3.0 + boost 1.83.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 5,002 bytes |
コンパイル時間 | 1,622 ms |
コンパイル使用メモリ | 170,704 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-15 00:07:18 |
合計ジャッジ時間 | 2,174 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
6,816 KB |
testcase_01 | AC | 2 ms
6,816 KB |
testcase_02 | AC | 2 ms
6,816 KB |
testcase_03 | AC | 2 ms
6,816 KB |
testcase_04 | AC | 2 ms
6,816 KB |
testcase_05 | AC | 2 ms
6,816 KB |
testcase_06 | AC | 2 ms
6,820 KB |
testcase_07 | AC | 2 ms
6,816 KB |
testcase_08 | AC | 1 ms
6,816 KB |
testcase_09 | AC | 2 ms
6,816 KB |
ソースコード
#define _USE_MATH_DEFINES // いくつかの数学的数値が使えるようになる.cmathのincludeの上に置かなければならない.msvc++のみらしい #pragma comment (linker, "/STACK:256000000")//スタック拡張msvc++のみらしい #include <bits/stdc++.h> #undef _P #define _P(...) printf(__VA_ARGS__) #define FOR(i,a,b) for (int i=(a);i<(b);i++) #define FOREQ(i,a,b) for (int i=(a);i<=(b);i++) #define RFOR(i,b,a) for(int i=b-1;i>=a;i--) #define REP(i,n) for (int i=0;i<(n);i++) #define REPEQ(i,n) for (int i=0;i<=(n);i++) #define REP1(i, n) for (int i = 1; i <= (n); i++) #define RREP(i,n) for(int i=(n)-1;i>=0;i--) #define RREP1(i,n) for(int i=(n);i>=1;i--) #define RALL(a) (a).rbegin(),(a).rend() #define ALL(a) (a).begin(),(a).end() #define all(a) (a).begin(),(a).end() #define EACH(x,y) for(auto &(x):(y)) #define ITR(x,c) for(__typeof(c.begin()) x=c.begin();x!=c.end();x++) #define inf INT_MAX/3 #define INF INT_MAX/3 #define LLINF 2000000000000000000 //(ll)2e18 #define VAR(v, i) __typeof(i) v=(i) #define eps 1e-14 #define LE(n, m) ((n) < (m) + eps) #define LEQ(n, m) ((n) <= (m) + eps) #define GE(n, m) ((n) + eps > (m)) #define GEQ(n, m) ((n) + eps >= (m)) #define IN(x,n,m) ((m) + eps >= (x)&&(n) - eps <= (x)) #define ll long long #define ull unsigned long long #define VI vector<int> #define VS vector<string> #define VL vector<long long> #define VII vector< vector<int> > #define VLL vector< vector<long long> > #define MP make_pair #define mp make_pair #define mt make_tuple #pragma GCC optimize ("O3") #pragma GCC target ("avx") #define ZERO(a) memset(a,0,sizeof(a)) #define FMO(n) memset((n),-1,sizeof(n)) #define MC(n,m) memcpy((n),(m),sizeof(n)) #define fst first #define sec second #define P(p) cout<<(p)<<'\n'; #define UNIQUE(v) v.erase( unique(v.begin(), v.end()), v.end() ); #define pb push_back #define eb emplace_back #define VSORT(c) sort((c).begin(),(c).end()) #define VDESCSORT(c) sort(c.begin(), c.end(), greater<int>()) #define VREVERSE(v) reverse(v.begin(), v.end()) #define SORT(v, n) sort(v, v+n); //algorithmライブラリのビルトイン #define gcd(a,b) __gcd(a,b) #define cinIntTable(a,n,m) int a[n][m]; REP(i,n)REP(j,m)cin>>a[i][j]; #define cinIntArray(a,n) int a[n]; REP(i,n)cin>>a[i]; #define inString(x) string x; cin >> x; #define inVint(v,n) vector<int> v(n); REP(i,n) cin>>v[i]; #define inVlint(v,n) vector<ll> v(n); REP(i,n) cin>>v[i]; #define inVString(v,n) vector<string> v(n); REP(i,n) cin>>v[i]; //入力マクロ #define inScanint(x) int x; scanf("%d",&x); #define inScanlint(x) long long x; scanf("%lld",&x); #define inScandouble(x) double x; scanf("%lf",&x); #define inScanVint(v,n) vector<int> v(n); REP(i,n) scanf("%d", &v[i]); #define inScanVlint(v,n) vector<ll> v(n); REP(i,n) scanf("%lld", &v[i]); #define inScanVdouble(v,n) vector<double> v(n); REP(i,n) scanf("%lf", &v[i]); #define EXIST(s,e) ((s).find(e)!=(s).end()) //size()がunsignedでつらい.unsignedなので加減算して思わぬバグを踏むことがあったり、intが絡む計算をするといちいち警告が出たりするので、それらを防ぐ目的のマクロです。 #define SZ(x) ((int)(x).size()) #define PCNT(x) __builtin_popcount(x) #define PCNTLL(x) __builtin_popcountll(x) #define even(n) (((n)+1)%2==1) #define odd(n) ((n)%2==1) #define sank(x,a,b) cout<<(x?a:b)<<endl; #define mod(a,b) (a%b+b)%b /////////////////////////////////////////////////////関数型基本ライブラリ template<class Container, class Transform> Container mapf_copy(const Container& c, Transform f) { using std::begin; using std::end; Container r; r.reserve(c.size()); std::transform(begin(c), end(c), std::back_inserter(r), f); return r; } //単位元と同じ型のものにreduceするようにする template<class Container, class InitialT, class BinaryOp> InitialT reducef(const Container& c, InitialT v, BinaryOp op) { using std::begin; using std::end; return std::accumulate(begin(c), end(c), v, op); } template<class Container, class Predicate> Container filterf_copy(const Container& c, Predicate f) { using std::begin; using std::end; Container r; std::copy_if(begin(c), end(c), std::back_inserter(r), f); return r; } //非破壊的なreverse関数の作り方です。受け取ったコンテナをイミュータブルなオブジェクトして扱います。戻り値はリバース済みのコンテナを新規オブジェクトとして返します。 template<class Container> Container reversed_copy(const Container& c) { using std::begin; using std::end; Container r; r.reserve(c.size()); std::reverse_copy(begin(c), end(c), std::back_inserter(r)); return r; } //////////////////////////////////////////////////////////////////////////// using namespace std; int main(void){ int N,K; cin>>N>>K; int n[N]; REP(i,N){ cin>>n[i]; } SORT(n,N); cout<<n[N-1]-n[0]<<endl; return 0; }