POJ(PKU) 3618 Exploration
やるだけ・
JOI予選っぽい問題だったし一発AC
#include <cstdio> #include <algorithm> #include <utility> using namespace std; typedef pair<int,int> P; P p[50003]; int main(){ int n,t; int ans = 0; int d[50003]; scanf("%d%d",&t,&n); for(int i = 0;i < n;i++){ scanf("%d",&d[i]); p[i] = P(abs(d[i]),i); } sort(p,p + n); int nau = 0; int m = 0; for(int i = 0;i < n;i++){ int next = d[p[i].second]; m += abs(next-nau); nau = next; if(m <= t){ ans++; }else{ break; } } printf("%d\n",ans); return 0; }