Reviva a Copa do Mundo
Limite de tempo: 2000/1000 MS (Java / outros) Limite de memória: 65536/32768 K (Java / outros)
Descrição do Problema
A Copa do Mundo acabou, e os italianos até recuperaram a dívida que os franceses tinham com eles há 6 anos, venceram a Copa Hércules e conquistaram a Itália de quatro estrelas.
Embora a Copa do Mundo tenha acabado, esta Copa do Mundo ainda nos deixa com Muitas coisas vale a pena lembrar. Por exemplo, ouvimos o comentário apaixonado de 3 minutos de Huang Mingzui. Aprendemos que podemos mostrar 3 cartões amarelos para a mesma pessoa. Também vimos que a cabeça de Zidane pode não só superar a bola, mas também as pessoas ...… ......
Como há tantas coisas maravilhosas, xhd decidiu revisitar a Copa do Mundo na Alemanha, é claro, apenas para ir às cidades que sediam a Copa do Mundo. Mas isso requer muito dinheiro, felizmente, o amor de xhd pela Copa do Mundo. pelo Comitê Organizador da Copa do Mundo da Alemanha, eles fornecerão ao xhd passagens aéreas de ida e volta para Hangzhou, China e qualquer cidade anfitriã da Copa do Mundo na Alemanha, e persuadiram essas cidades a lhe fornecerem um subsídio de subsistência quando xhd chegar à cidade, para que ele pode usá-lo ao visitar lá., Quando o passeio terminar, o dinheiro restante também será reservado para xhd, mas quando as despesas de vida não forem suficientes, eles vão encerrar à força a viagem xhd para a Alemanha, além disso, eles tem uma condição, xhd só pode visitar de acordo com a rota que eles forneceram. Por exemplo, existem 3 cidades a, b e c, e eles forneceram a rota de abc, então xhd tem apenas 3 ordens de visita abc, bca, cab. Como o custo de vida fornecido por cada cidade e o custo de cada cidade são diferentes, isso faz com que Xhd seja uma dor de cabeça. Felizmente, sabíamos o custo de vida e despesas com antecedência. Quantas cidades o Xhd pode visitar sem problemas?
Entrada
Cada conjunto de dados de entrada é dividido em duas linhas. A primeira linha é um número inteiro positivo n (1 <= n <= 100000), indicando que há n cidades. A próxima linha mostra o custo de vida dessas n cidades de acordo com o dada ordem de rota E o custo, w1, l1, w2, l2, ..., wn, ln, onde wi, li representam o custo de vida e despesas da i-ésima cidade, e são todos inteiros positivos.
Resultado
O número máximo de cidades que podem ser visitadas correspondente a cada conjunto de saída de dados.
Amostra de entrada
3
3 2 3 4 2 2
3
3 2 3 4 2 3
Saída de amostra
3
2
Quando fiz esta pergunta no início, não analisei o significado da pergunta com cuidado, então comecei o TIE. Aprendi mais tarde que é uma coisa semelhante a um loop e basta seguir o método que fizemos antes.
#include "iostream"
#include "cstdio"
#include "cstring"
#include "algorithm"
using namespace std;
const int maxn = 2e5+5;
int n;
int w,l;
int dp[maxn];
int sum;
int main(){
while(~scanf("%d",&n)){
for( int i=0 ; i<n ; i++ ){
scanf("%d%d",&w,&l);
dp[i]=dp[i+n]=w-l;
}
sum = 0;
int k = 0;
int max = 0;
for( int i=0 ; i<2*n ; i++ ){
sum += dp[i];
k++;
if(sum < 0){
sum = 0;
k = 0;
}
if( k > max ) max = k;
if( k > n ) break;
}
if(max > n) max = n;
cout<<max<<endl;
}
return 0;
}