Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<iostream>
- #include<stdlib.h>
- #include<fstream>
- #include<string>
- #include<vector>
- #include<set>
- using namespace std;
- fstream in,out;
- int main(){
- in.open("input.txt",ios::in);
- out.open("output.txt",ios::out);
- int maxa,maxb,inia,inib,fina,finb,scartoa,scartob;
- in>>maxa>>maxb>>inia>>inib>>fina>>finb;
- pair<int, pair<int,int> > app;
- pair<int, pair<int,int> > nuovo;
- set< pair <int, pair<int,int> > > coda;
- app.second.first=inia;
- app.second.second=inib;
- app.first=0;
- coda.insert(app);
- set < pair<int, pair<int,int> > > :: iterator it;
- while(app.second.first!=fina||app.second.second!=finb){
- it=coda.begin();
- app=(*it);
- coda.erase(it);
- nuovo.first=app.first+1;
- nuovo.second.first=app.second.first;
- nuovo.second.second=0;
- coda.insert(nuovo);
- nuovo.second.second=app.second.second;
- nuovo.second.first=0;
- coda.insert(nuovo);
- nuovo.second.first=maxa;
- coda.insert(nuovo);
- nuovo.second.first=app.second.first;
- nuovo.second.second=maxb;
- coda.insert(nuovo);
- scartoa=maxa-app.second.first;
- scartob=maxb-app.second.second;
- if(scartoa=!0){
- if(scartoa>app.second.second){
- nuovo.second.first=app.second.first+app.second.second;
- nuovo.second.second=0;
- }
- else{
- nuovo.second.first=maxa;
- nuovo.second.second=app.second.second-scartoa;
- }
- }
- coda.insert(nuovo);
- if(scartob>0){
- if(scartob>app.second.first){
- nuovo.second.second=app.second.first+app.second.second;
- nuovo.second.first=0;
- }
- else{
- nuovo.second.second=maxb;
- nuovo.second.first=app.second.first-scartob;
- }
- }
- coda.insert(nuovo);
- }
- out<<app.first;
- in.close();
- out.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement