yukicoder No.135 とりあえず1次元の問題
問題
N個の1次元の座標が与えられ、その中から同じ座標ではない2点を選ぶ。
最小距離を求めよ。
感想
星1だし制約を確認せずに全探索で大丈夫では思ったらTLE。
unique使ってみた!
#include <bits/stdc++.h> #define MOD 1000000007 using namespace std; typedef pair<int,int> P; typedef pair<int,pair<int,int>> PP; typedef long long LL; const double EPS = 1e-8; const int INF = 1e9; int dy[] = {0,1,0,-1}; int dx[] = {1,0,-1,0}; int main(void) { int N; int ret = INF; cin >> N; vector<int> x(N); for(int i=0;i<N;i++)cin >> x[i]; sort(x.begin(),x.end()); x.erase( unique(x.begin(),x.end()), x.end()); for(int i=0;i<x.size()-1;i++){ ret = min(x[i+1]-x[i],ret); } if(ret == INF)cout << 0 << endl; else cout << ret << endl; return 0; }
ブログのネタを探しています。