栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 2656 Travel Around Country

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 2656 Travel Around Country

#define maxn 20020#include <cstdlib>#include <stdio.h>#include <algorithm>#include <string.h>#include <iostream>#include <vector>#include <queue>using namespace std;struct Tdata{ int oil, city; };struct cmp{bool operator()(const Tdata &a,const Tdata &b){return a.oil > b.oil;}};bool used[maxn];priority_queue<Tdata, vector<Tdata>, cmp> cnt;int n;int dis[maxn], oil[maxn];bool init(){if (scanf("%d", &n) == EOF) return false;for (int i=0; i<n; i++) {scanf("%d%d", &oil[i], &dis[i]);dis[i+n] = dis[i], oil[i+n] = oil[i];}return true;}void solve(){while (!cnt.empty()) cnt.pop();Tdata d; d.oil = d.city = 0;cnt.push(d);;int now=oil[0];memset(used, 0, sizeof used);int ret = -1;for (int i=1; i<2*n; i++){now-=dis[i-1]; while (!cnt.empty()) {if (now+cnt.top().oil < 0){used[cnt.top().city] = true;cnt.pop();}else break;}now+=oil[i];if (i<n) {d.oil = oil[i]-now, d.city = i;cnt.push(d);}else if (!used[i-n]) {printf("%dn", i-n);return;}}printf("impossiblen");}int main(int argc, char** argv) {while (init()) solve();return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/379215.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号