Ledger

Ledger


#include<bits/stdc++.h>

using namespace std;

int main(){

float rpa;

cin>>rpa;


int row;

cin>>row;


vector<pair<int,pair<int,pair<string,int> > > > ledger;


for (int i = 0; i < row-2; ++i)

{

int txnid,amt,balance;

string c;


cin>>txnid>>amt;

cin>>c;

cin>>balance;


ledger.push_back(make_pair(txnid,make_pair(amt,make_pair(c,balance) ) ));

}


double interest,final_principle;

cin>>interest;


final_principle=(interest*100*365)/(rpa*1);

int i=0;

for (i = 0; i < row; ++i)

{

if(ledger[i].first+1!=ledger[i+1].first){

break;

}

}

int balance2,balance1;


if(ledger[i+3].second.second.first=="credit"){

balance2=ledger[i+3].second.second.second-ledger[i+3].second.first;

}

else

balance2=ledger[i+3].second.second.second+ledger[i+3].second.first;


int demosum=balance2;

for (int i = 0; i < row; ++i)

{

demosum+=ledger[i].second.second.second;

}


balance1=round(final_principle-demosum);


if (balance1<ledger[i].second.second.second)

{

cout<<i+1<<" "<<abs(ledger[i].second.second.second-balance1)<<" "<<"debit"<<" "<<balance1<<endl;

if (balance1<balance2)

{

cout<<i+2<<" "<<abs(balance2-balance1)<<" "<<"credit"<<" "<<balance2<<endl;

}

else{

cout<<i+2<<" "<<abs(balance2-balance1)<<" "<<"debit"<<" "<<balance2<<endl;

}

}

else{

cout<<i+1<<" "<<abs(ledger[i].second.second.second-balance1)<<" "<<"credit"<<" "<<balance1<<endl;

if (balance1<balance2)

{

cout<<i+2<<" "<<abs(balance2-balance1)<<" "<<"credit"<<" "<<balance2<<endl;

}

else{

cout<<i+2<<" "<<abs(balance2-balance1)<<" "<<"debit"<<" "<<balance2<<endl;

}

}


}

Report Page