压标
//23:46 16分
#include<stdio.h>
const int NUM=100005;
int a[NUM];
int v[NUM];
int main()
{
int n,i,val;
int index=-1;
//freopen("C:\\Documents and Settings\\Administrator\\桌面\\input.txt","r",stdin);
scanf("%d%d",&n,&val);
a[0]=0;
for(i=1;i<=n;i++){
scanf("%d",&a[i]);
a[i]+=a[i-1];
if(index==-1&&a[i]>=val){
index=i;
}
}
int j,fg=0;
for(i=index;i<=n;i++){
for(j=0;j<i;j++){
if(a[i]-a[j]==val){
fg=1;
printf("%d-%d\n",j+1,i);
}
}
}
if(fg==0){
for(i=0;i<=n;i++)
v[i]=0;
for(i=index;i<=n;i++){
for(j=i-1;j>=0;j--){
if(v[j]==0&&a[i]-a[j]>val){
printf("%d-%d\n",j+1,i);
v[j]=1;
break;
}
}
}
}
return 0;
}
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
const int NUM=1003;
struct node
{
int val;
_int64 v;
node *left;
node *right;
}
int cmp(const void *a, const void *b)
{
node * x=(node *)a;
node *y=(node *)b;
return x->val - y->val;
}
bool cmp(const node &a, const node &b)
{
return a.val>y.val;
}
qsort(a,n,sizeof(a[0]),cmp);
sort(a,a+n,cmp);
map<int,string> m;
m[i]=fd;
m.insert(make_pair(dfs,df));
m.find();
int main()
{
int n;
freopen("","r",stdin);
freopen("c://dfsf//input.txt","w",stdout);
while(left<=right){
mid=(left+right)/2;
if(a[x]==mid)
return mid;
else if(a[x]<mid)
right=mid-1;
else if(a[x]>mid)
left=mid+1;
}
return -1;
while(x){
a[i++]=x%10;
x/=10;
}
struct node *s=new node;
s->left=NULL;
s->right=NULL;
s->val=dfs;
scanf("%d",&a[i]);
if(a[i]
void Insert(node *root, char x)
{
if(!root){
root=new node;
root->c=x;
}
else {
if(x<root->c) insert(root->left,x);
else insert(root->right,x);
}
}
preorder(node *root)
{
printf(root->val);
preorder(root->left);
preorder(
}
vector<int> a;
vector<int>::iterator it;
for(it=a.begin();it!=a.end();it++){
pritnf("*it);
it->first
it->second;
}
a.push_back(i);
a.pop_back(i);
a.empty();
a.size();
queue<int> q;
queue<node *> q;
q.push(root);
while(q.size()>0){
node *t=q.front();
q.pop();
if(t->left!=NULL)
q.push(t->left);
if(t->right!=NULL)
q.push(t->right);
}
q.pop();
q.front();
cin>>dfs;
cout<<;
int bfs(int v)
{
int i,n;
queue<int> q;
memset(df,0,sizeof(df));
isVis[v]=1;
q.push(v);
while(q.size()>0){
int c=q.front();
q.pop();
for(i=0;i<map[c].size();i++){
if(!isVis[i]){
isVis[i]=1;
dis[f]=dfs[df]df;
q.push(i);
}
}
}
}
void dfs()
{
isVis[v]=1;
for(i=0;i<map[c].size();i++){
if(!isVis[i]){
isvis[i]=1;
dfs(i);
isVis[i]=0;
}
}
}
int dijkstra(int v)
{
for(i=0;i<n;i++){
if(i!=v&&map[v][i]>0)
dist[i]=map[v][i];
else
dist[i]=INF;
vis[i]=0;
}
dist[v]=0;
vis[v]=1;
for(i=0;i<n;i++){
min=INF;
int index;
for(j=0;j<n;j++){
if(vis[j]==0&&dist[j]<min){
min=dist[j];
index=j;
}
}
vis[index]=1;
for(j=0;j<n;j++){
if(vis[j]==0&&dist[j]>dist[index]+map[index][j]){
dist[j]=min+map[index][j];
}
}
}
}
int kruscal()
{
int ans=0;
for(i=0;i<m;i++){
if(find(e[i].x)!=find(e[i].y))
{
merge(e[i].x,e[i].y);
ans+=e[i].dis;
t++;
if(t==n-1)
break;
}
}
return ans;
}
void dfs(int x,int y,int step)
{
int dict[4][2]={{1,0},{0,1},};
if(x<=0||y<=0||x>n||y>m)
return ;
if(step==t&&x==dx&&y==dy){
flag=1;
}
if(flag==1) return ;
for(i=0;i<4;i++){
int temp_x=x+dict[i][0];
int temp_y=y+dict[i][1];
if(maze[temp_x][temp_y]!='x'){
maze[temp_x][temp_y]=x;
dfs(temp_x,temp_y,step+1);
maze[temp_x][temp_y]='.';
}
}
int find(int x)
{
int r=x;
while(r!=parent[r])
r=parent[r];
return r;
}
int find(int x)
{
if(x!=parent[x])
parent[x]=find(parent[x]);
return parent[x];
}
memset(parent,0,sizeof(parent));
void merge(int x,int y)
{
int a=find(x);
int b=find(y);
if(a!=b){
parent[a]=b;
}
}
for(i=2;i<n;i++){
dp[i]=1;
for(j=1;j<i;j++){
if(a[i]>a[j]&&dp[i]<dp[j]+1)
dp[i]=dp[j]+1;
}
if(dp[i]>maxNUM)
maxNum=dp[i];
}
for(t=8*3600;!wait.empty();t++)
{
for(i=0;i<win.size();i++){
win[i].cost--;
if(win[i].cost==0)
available++;
else
tmp.push_back(win[i]);
}
win=tmp;
tmp.clear();
while(available>0 &&wait.size()>0&&t>=wait[0].arrive){
win.push_back(wait[0]);
available--;
total+=t-wait[0].arrive;
wait.erase(wait.begin());
}
}
priority_queue<window> bank;
bank.push();
bank.top();
bank.pop();
bank.clear();
return 0;
}
夺