paint <- read.table("paint.csv",header=T,sep=',')

n <- nrow(paint)

sidx <- order(paint[,"WTPS"],decreasing=T)
didx <- order(paint[,"WTPD"],decreasing=T)

bot <- min(c(paint[,"WTPS"],paint[,"WTPD"]))
top <- max(c(paint[,"WTPS"],paint[,"WTPD"]))

ps.options(horizontal=FALSE,onefile=FALSE)
ps.options(pagecentre=TRUE)
ps.options(paper="letter")
ps.options(width=7.0,height=5.0)

postscript(file="paint.eps")
par(mfrow=c(1,1),mar=c(2.5,4,1.5,2)+0.1) # mar=c(b,l,t,r)
plot(x=c(1,n),y=c(bot,top),type="n",ylab="WTPD",xlab="")
points(x=seq(1:n),y=paint[didx,"WTPD"],ylab="WTPD",col="green")
points(x=seq(1:n),y=paint[sidx,"WTPS"],ylab="WTPS",col="black")
dev.off()

pd <- 47.0
ps <- 44.0

mind <- min(paint[,"WTPD"])
maxd <- max(paint[,"WTPD"])

ranged <- seq(mind,maxd,1.0)

mins <- min(paint[,"WTPS"])
maxs <- max(paint[,"WTPS"])

ranges <- seq(mins,maxs,1.0)

best.rev <- 0

for (pd in ranged) {
  for (ps in ranges) {
    sum = 0.0
    for ( k in 1:n) {
      if ( paint[k,"WTPD"] - pd  >= max(0, paint[k,"WTPS"] - ps) ) {
        sum <- sum + pd
      } else { 
        if (paint[k,"WTPS"] >=  ps) {
          sum <- sum + ps
        }
      }
    }
    if (sum > best.rev) {
      best.rev <- sum
      best.pd <- pd
      best.ps <- ps
    }
  }
}

print(" ")
print(best.rev)
print(best.pd)
print(best.ps)

ranged <- seq(best.pd - 1.0, best.pd + 1.0, 0.1)
ranges <- seq(best.ps - 1.0, best.ps + 1.0, 0.1)

best.rev <- 0

for (pd in ranged) {
  for (ps in ranges) {
    sum = 0.0
    for ( k in 1:n) {
      if ( paint[k,"WTPD"] - pd  >= max(0, paint[k,"WTPS"] - ps) ) {
        sum <- sum + pd
      } else { 
        if (paint[k,"WTPS"] >=  ps) {
          sum <- sum + ps
        }
      }
    }
    if (sum > best.rev) {
      best.rev <- sum
      best.pd <- pd
      best.ps <- ps
    }
  }
}

print(" ")
print(best.rev)
print(best.pd)
print(best.ps)

ranged <- seq(best.pd - 0.1, best.pd + 0.1, 0.01)
ranges <- seq(best.ps - 0.1, best.ps + 0.1, 0.01)

best.rev <- 0

for (pd in ranged) {
  for (ps in ranges) {
    sum = 0.0
    qd <- 0.0
    qs <- 0.0
    for ( k in 1:n) {
      if ( paint[k,"WTPD"] - pd  >= max(0, paint[k,"WTPS"] - ps) ) {
        sum <- sum + pd
        qd = qd + 1;
      } else { 
        if (paint[k,"WTPS"] >=  ps) {
          sum <- sum + ps
          qs = qs + 1;
        }
      }
    }
    if (sum > best.rev) {
      best.rev <- sum
      best.pd <- pd
      best.ps <- ps
      best.qd <- qd
      best.qs <- qs
    }
  }
}

print(" ")
print(best.rev)
print(best.pd)
print(best.ps)
print(best.qd)
print(best.qs)

