ひどい・・・
色々とひどいのでノーコメントで
1724
#include <cstdio> #include <cstring> #include <climits> #include <vector> #include <map> #include <queue> #include <algorithm> using namespace std; typedef pair<int, int> P; typedef pair<int, P> PP; int k, n, r; struct road { int d, l, t; }; bool vis[100][10001]; vector<road> roads[100]; int main() { scanf("%d%d%d",&k,&n,&r); memset(vis, 0, sizeof(vis)); for (int i=0; i<r; i++) { int s, de, l, t; scanf("%d%d%d%d",&s,&de,&l,&t); roads[s-1].push_back((road){de-1,l,t}); } priority_queue<PP, vector<PP>, greater<PP> > que; que.push(make_pair(0,P(0,0))); while (!que.empty()) { int len=que.top().first; int np=que.top().second.first; int sp=que.top().second.second; que.pop(); if (vis[np][sp]) continue; vis[np][sp]=true; if (np==n-1) { printf("%d\n",len); return 0; } for (int i=0; i<roads[np].size(); i++) { road nr=roads[np][i]; if (sp+nr.t>k||vis[nr.d][sp+nr.t]) continue; que.push(make_pair(len+nr.l,P(nr.d,sp+nr.t))); } } puts("-1"); }
1731
#include <cstdio> #include <iostream> #include <algorithm> using namespace std; string s; int main() { cin>>s; sort(s.begin(), s.end()); do { cout<<s<<endl; } while (next_permutation(s.begin(), s.end())); }
1828
#include <cstdio> #include <map> #include <algorithm> using namespace std; int n; pair<int, int> p[50000]; int main() { while (scanf("%d",&n)) { if (n==0) break; for (int i=0; i<n; i++) { scanf("%d%d",&p[i].first,&p[i].second); } sort(p, p+n, greater<pair<int, int> >()); int res=1, ymax=p[0].second; for (int i=1; i<n; i++) { if (ymax<p[i].second) { res++; ymax=p[i].second; } } printf("%d\n",res); } }