标签:space mib 一个 inf contest des 正数 正整数 prim
时间限制:1 Sec 内存限制:128 MiB
提交:344
答案正确:71
输出最小的正子段和
3 -1 2 3
1
#include <iostream> #include <algorithm> using namespace std; const int N = 50100; typedef struct point { int i; long long sum; }Point; Point a[50100]; bool cmp(Point A, Point B) { return A.sum < B.sum; } int main() { int n; cin >> n; long long temp; long long ans = 100000000000000000; a[0].sum = 0; a[0].i = 0; for(int i=1; i<=n; i++) { cin >> temp; if(temp > 0 && temp < ans) { ans = temp; } // 求出前缀和 在后面打乱和的位置 找出最小的正整数和 a[i].i = i; a[i].sum = a[i-1].sum + temp; } sort(a, a+n+1, cmp); for(int i=1; i<=n; i++) { if(a[i].i > a[i-1].i && a[i].sum-a[i-1].sum > 0 && a[i].sum-a[i-1].sum < ans) { ans = a[i].sum - a[i-1].sum; } } if(ans < 100000000000000000) { cout << ans << endl; } else { cout << "no solution" << endl; } return 0; }
标签:space mib 一个 inf contest des 正数 正整数 prim
原文地址:https://www.cnblogs.com/yi-ye-zhi-qiu/p/9065185.html